i := 123
s := string(i) 

s是E,但我想要的是123

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

在Java中,我可以这样做:

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

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


当前回答

fmt。Sprintf strconv。Itoa和strconv。FormatInt将完成这项工作。但是Sprintf将使用包反射,它将再分配一个对象,因此这不是一个有效的选择。

其他回答

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

如果您知道值的特定类型,则使用相应的格式化程序,例如int使用%d

更多信息- fmt

有趣的是,strconv。Itoa是缩写

func FormatInt(i int64, base int) string

以10为底

例如:

strconv.Itoa(123)

等于

strconv.FormatInt(int64(123), 10)
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)
}

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

例如

package main

import (
    "fmt"
)

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

fmt。Sprintf strconv。Itoa和strconv。FormatInt将完成这项工作。但是Sprintf将使用包反射,它将再分配一个对象,因此这不是一个有效的选择。