i := 123
s := string(i)
s ist 'E', aber was ich will ist "123"
Bitte sagen Sie mir, wie ich "123" bekommen kann.
Und in Java kann ich Folgendes tun:
String s = "ab" + "c" // s is "abc"
Wie kann ich concat
zwei Strings in Go?
string
go
int
converters
HardPass
quelle
quelle
Antworten:
Verwenden Sie die Funktion des
strconv
PaketsItoa
.Zum Beispiel:
Sie können Zeichenfolgen einfach zusammenfassen, indem Sie sie eingeben
+
oder dieJoin
Funktion desstrings
Pakets verwenden.quelle
Wenn Sie den spezifischen Wertetyp kennen, verwenden Sie beispielsweise den entsprechenden Formatierer
%d
fürint
Weitere Infos - fmt
quelle
%d
für int - thisEs ist interessant festzustellen, dass dies
strconv.Itoa
eine Abkürzung für istmit Basis 10
Zum Beispiel:
ist äquivalent zu
quelle
fmt.Sprintf
,strconv.Itoa
Undstrconv.FormatInt
wird die Arbeit machen. AberSprintf
das Paket verwendenreflect
, und es wird ein weiteres Objekt zuweisen, so ist es nicht eine effiziente Wahl.quelle
Sie können fmt.Sprintf verwenden
Siehe zum Beispiel http://play.golang.org/p/bXb1vjYbyc .
quelle
In diesem Fall beide
strconv
undfmt.Sprintf
die gleiche Arbeit , aber die Verwendung vonstrconv
Paket derItoa
Funktion ist die beste Wahl, weilfmt.Sprintf
man mehr bei der Konvertierung Objekt zuordnen.Überprüfen Sie den Benchmark hier: https://gist.github.com/evalphobia/caee1602969a640a4530
Siehe zum Beispiel https://play.golang.org/p/hlaz_rMa0D .
quelle
fmt.Sprintf
undstrconv.iota
in Bezug auf die Benutzerfreundlichkeit ähnlich sind und die obigen Daten zeigen, dass iota bei geringerer GC-Auswirkung schneller ist,iota
sollte es im Allgemeinen verwendet werden, wenn eine einzelne Ganzzahl konvertiert werden muss.Konvertieren
int64
:quelle
ok, die meisten haben dir etwas Gutes gezeigt. Lassen Sie mich Ihnen Folgendes geben:
quelle
quelle