i := 123
s := string(i)
s é 'E', mas o que eu quero é "123"
Por favor, diga-me como posso obter "123".
E em Java, eu posso fazer desta maneira:
String s = "ab" + "c" // s is "abc"
como posso concat
duas strings no Go?
string
go
int
converters
hardPass
fonte
fonte
Respostas:
Use a função
strconv
do pacoteItoa
.Por exemplo:
Você pode concaturar strings simplesmente usando
+
-as ou usando aJoin
função dostrings
pacote.fonte
Se você conhece o tipo específico de valor, use o formatador correspondente, por exemplo,
%d
paraint
Mais informações - fmt
fonte
%d
para int - thisÉ interessante notar que
strconv.Itoa
é uma abreviação decom base 10
Por exemplo:
é equivalente a
fonte
fmt.Sprintf
,strconv.Itoa
Estrconv.FormatInt
vai fazer o trabalho. MasSprintf
usará o pacotereflect
e alocará mais um objeto, portanto, não é uma escolha eficiente.fonte
Você pode usar o fmt.Sprintf
Veja http://play.golang.org/p/bXb1vjYbyc, por exemplo.
fonte
Neste caso, tanto
strconv
efmt.Sprintf
fazer o mesmo trabalho, mas usando ostrconv
do pacoteItoa
função é a melhor escolha, porquefmt.Sprintf
alocar mais um objeto durante a conversão.verifique o benchmark aqui: https://gist.github.com/evalphobia/caee1602969a640a4530
veja https://play.golang.org/p/hlaz_rMa0D, por exemplo.
fonte
fmt.Sprintf
estrconv.iota
são semelhantes em termos de facilidade de utilização e os dados mostram acima jota para ser mais rápido com menor impacto GC, verifica-se queiota
devem ser usados, em geral, quando um único número inteiro necessidades de conversão.Convertendo
int64
:fonte
ok, a maioria deles mostrou algo de bom. Vamos lhe dar o seguinte:
fonte
fonte