Jestem nowicjuszem w golangu. Nie mogę znaleźć żadnego oficjalnego dokumentu, który pokazuje, w jaki sposób scalić wiele żądań na łańcuchu.
Czego spodziewa:
Wejście: "klucz:", "wartość", "Klawisz2:" 100
Wyjście: "Klucz: wartość, klucz2: 100"Jak połączyć wiele ciągów znaków i int w pojedynczy ciąg znaków w golangu?
Odpowiedz
lubię użyj metody fmt na Sprintf
dla tego typu rzeczy. Działa jak normalnie Printf
w Go lub C tylko zwraca ciąg znaków. Oto przykład;
output := fmt.Sprintf("%s%s%s%d", "key:", "value", ", key2:", 100)
Go docs dla fmt.Sprintf
ostatni to numer int. Czy mogę użyć% d? –
@RobertYiJiang tak, będę edytować w rzeczywistości. Nie zdawałem sobie sprawy, że zmieniłem typ wejścia tam. – evanmcdonnal
Można używać strings.Join, który jest prawie 3x szybciej niż fmt.Sprintf. Jednak może być mniej czytelny.
output := strings.Join([]string{"key:", "value", ", key2:", strconv.Itoa(100)}, "")
Zobacz https://play.golang.org/p/AqiLz3oRVq
strings.Join vs fmt.Sprintf
BenchmarkFmt-4 2000000 685 ns/op
BenchmarkJoins-4 5000000 244 ns/op
Buffer
Jeśli trzeba scalić wiele strun, bym rozważyć przy użyciu bufora, a nie tych rozwiązań wspomnianych powyżej.
Cóż, jeśli używasz pliku strconv.Itoa, możesz również łączyć łańcuchy z + –
@ColinPitrat Z powodu problemu z kompilatorem go, string.Join z 2 lub 3 elementów używa +, ale powyżej tworzy bajtowy segment dla bardziej wydajne łączenie. Jeśli masz więcej niż dwa elementy do konkatenacji, zdecydowanie zaleca się używanie napisów .Join. – basgys
- 1. Losowy ciąg znaków z listy ciągów znaków
- 2. Najszybszy sposób konwertowania listy ciągów znaków w pojedynczy połączony ciąg znaków?
- 3. Importuj plik tekstowy jako pojedynczy ciąg znaków
- 4. Łączenie ciągów znaków w pythonie w wielolinie
- 5. Jak połączyć wiele ciągów Unicode?
- 6. Ruby Sprawdź warunek, czy ciąg zawiera wiele różnych ciągów znaków?
- 7. Python: jak połączyć wpisy w zestawie w jeden ciąg znaków?
- 8. Delphi XE3 - Nie można połączyć ciągów znaków
- 9. Ruby gsub wiele znaków w ciąg
- 10. Tablica ciągów ciągów znaków
- 11. Podział ciąg do tablicy ciągów pojedynczych znaków
- 12. Pamięciowy sposób przechowywania ciągów znaków
- 13. Rozróżnianie ciągów znaków i tablic bajtów?
- 14. Configparser i ciąg znaków z%
- 15. Przeciążanie literowe ciągów znaków
- 16. Tokenize ciąg znaków i ograniczniki w C++
- 17. W TypeScript jak zadeklarować tablicę funkcji, które akceptują ciąg znaków i zwracają ciąg znaków?
- 18. Jak połączyć znak i ciąg na iPhonie?
- 19. Zamień wiele znaków w ciągu znaków (XSLT)
- 20. Dopasowywanie rozmytych ciągów znaków
- 21. Jak rozwinąć ciąg znaków w ciągu znaków w pythonie?
- 22. Porównanie inteligentnych ciągów znaków
- 23. Usuwanie spacje z ciągów znaków w Groovy
- 24. Porównywanie ciągów znaków w EL
- 25. Podział wielu ciągów znaków w java
- 26. Jak przekonwertować zmienną ciągów znaków w języku Python 3 na zwykły ciąg znaków?
- 27. Dodawanie znaków char i int
- 28. Wybierz sparsowany int, jeśli ciąg znaków można sparsować do int
- 29. Zmiana kolumny z łańcucha znaków na ciąg znaków w postgresql
- 30. Konwertowanie ciągów znaków na listy w pythonie
Możliwy duplikat [Golang: sformatować ciąg bez drukowania?] (Http://stackoverflow.com/questions/11123865/golang-format-a-string-without-printing) – icza