如何在int中将int值转换为string?

i := 123 s := string(i) 

s是'E',但是我想要的是“123”

请告诉我如何得到“123”。

在Java中,我可以这样做:

 String s = "ab" + "c" // s is "abc" 

我怎么能在Go中连接两个string?

使用strconv包的Itoa函数。

例如:

 package main import ( "strconv" "fmt" ) func main() { t := strconv.Itoa(123) fmt.Println(t) } 

你可以简单地通过+来连接string,或者使用strings包的Join函数。

 fmt.Sprintf("%v",value); 

如果您知道具体的值types,请使用相应的格式化程序,例如%d作为int

更多信息 – fmt

你可以使用fmt.Sprintf

例如见http://play.golang.org/p/bXb1vjYbyc

有趣的是, strconv.Itoa是速记

 func FormatInt(i int64, base int) string 

以10为底

例如:

 strconv.Itoa(123) 

相当于

 strconv.FormatInt(int64(123), 10) 

fmt.Sprintfstrconv.Itoastrconv.FormatInt将完成这项工作。 但是Sprintf会使用这个包reflect ,并且会分配一个对象,所以这不是一个好的select。

在这里输入图像说明

在这种情况下, strconvfmt.Sprintf都做同样的工作,但是使用strconv包的Itoa函数是最好的select,因为fmt.Sprintf在转换过程中分配了一个对象。

检查两者的nenchmark结果 检查基准在这里: https : //gist.github.com/evalphobia/caee1602969a640a4530

例如,请参阅https://play.golang.org/p/hlaz_rMa0D