i := 123
s := string(i)
s是E,但我想要的是123
请告诉我怎样才能得到“123”。
在Java中,我可以这样做:
String s = "ab" + "c" // s is "abc"
我如何在围棋中连接两个字符串?
i := 123
s := string(i)
s是E,但我想要的是123
请告诉我怎样才能得到“123”。
在Java中,我可以这样做:
String s = "ab" + "c" // s is "abc"
我如何在围棋中连接两个字符串?
当前回答
package main
import (
"fmt"
"strconv"
)
func main(){
//First question: how to get int string?
intValue := 123
// keeping it in separate variable :
strValue := strconv.Itoa(intValue)
fmt.Println(strValue)
//Second question: how to concat two strings?
firstStr := "ab"
secondStr := "c"
s := firstStr + secondStr
fmt.Println(s)
}
其他回答
package main
import (
"fmt"
"strconv"
)
func main(){
//First question: how to get int string?
intValue := 123
// keeping it in separate variable :
strValue := strconv.Itoa(intValue)
fmt.Println(strValue)
//Second question: how to concat two strings?
firstStr := "ab"
secondStr := "c"
s := firstStr + secondStr
fmt.Println(s)
}
使用strconv包的Itoa函数。
例如:
package main
import (
"strconv"
"fmt"
)
func main() {
t := strconv.Itoa(123)
fmt.Println(t)
}
你可以简单地通过+ +来连接字符串,或者使用字符串包的Join函数。
有趣的是,strconv。Itoa是缩写
func FormatInt(i int64, base int) string
以10为底
例如:
strconv.Itoa(123)
等于
strconv.FormatInt(int64(123), 10)
另一个选择:
package main
import "fmt"
func main() {
n := 123
s := fmt.Sprint(n)
fmt.Println(s == "123")
}
https://golang.org/pkg/fmt#Sprint
在本例中,包括strconv和fmt。Sprintf做同样的工作,但使用strconv包的Itoa函数是最好的选择,因为fmt。Sprintf在转换期间再分配一个对象。
在这里查看基准测试:https://gist.github.com/evalphobia/caee1602969a640a4530
例如,参见https://play.golang.org/p/hlaz_rMa0D。