i := 123
s := string(i) 

s是E,但我想要的是123

请告诉我怎样才能得到“123”。

在Java中,我可以这样做:

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

我如何在围棋中连接两个字符串?


当前回答

您可以使用fmt。Sprintf或strconv。FormatFloat

例如

package main

import (
    "fmt"
)

func main() {
    val := 14.7
    s := fmt.Sprintf("%f", val)
    fmt.Println(s)
}

其他回答

使用strconv包的Itoa函数。

例如:

package main

import (
    "strconv"
    "fmt"
)

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

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

另一个选择:

package main
import "fmt"

func main() {
   n := 123
   s := fmt.Sprint(n)
   fmt.Println(s == "123")
}

https://golang.org/pkg/fmt#Sprint

您可以使用fmt。Sprintf或strconv。FormatFloat

例如

package main

import (
    "fmt"
)

func main() {
    val := 14.7
    s := fmt.Sprintf("%f", val)
    fmt.Println(s)
}

转换int64:

n := int64(32)
str := strconv.FormatInt(n, 10)

fmt.Println(str)
// Prints "32"

在本例中,包括strconv和fmt。Sprintf做同样的工作,但使用strconv包的Itoa函数是最好的选择,因为fmt。Sprintf在转换期间再分配一个对象。

在这里查看基准测试:https://gist.github.com/evalphobia/caee1602969a640a4530

例如,参见https://play.golang.org/p/hlaz_rMa0D。