i := 123
s := string(i)
Run Code Online (Sandbox Code Playgroud)
s是'E',但我想要的是"123"
请告诉我如何获得"123".
在Java中,我可以这样做:
String s = "ab" + "c" // s is "abc"
Run Code Online (Sandbox Code Playgroud)
我怎么能concat在Go中使用两个字符串?
是否有一种简单的方法来在Go中格式化字符串而不打印字符串?
我可以:
bar := "bar"
fmt.Printf("foo: %s", bar)
Run Code Online (Sandbox Code Playgroud)
但我希望返回格式化的字符串而不是打印,以便我可以进一步操作它.
我也可以这样做:
s := "foo: " + bar
Run Code Online (Sandbox Code Playgroud)
但是当格式字符串很复杂时很难读取,当一个或多个部分不是字符串并且必须先转换时很麻烦,就像
i := 25
s := "foo: " + strconv.Itoa(i)
Run Code Online (Sandbox Code Playgroud)
我是Go的新手 - 我的背景是Ruby,这很简单.有更简单的方法吗?
我今天才开始去,所以这可能很明显,但我找不到任何东西.
是什么var x uint64 = 0x12345678; y := string(x)给y?
我知道var x uint8 = 65; y := string(x)会给y字节65,性格A和常识会建议(因为大于类型uint8允许被转换为字符串),他们会简单地以本地字节顺序进行包装(即小端),并赋值给变量.
似乎并非如此:
hex.EncodeToString([]byte(y)) ==> "efbfbd"
Run Code Online (Sandbox Code Playgroud)
首先想到这是一个地址,最后一个字节由于一些奇怪的空终止符而被关闭,但是如果我分配两个x和y两个不同值的变量并打印出来我得到相同的结果.
var x, x2 uint64 = 0x10000000, 0x20000000
y, y2 := string(x), string(x2)
fmt.Println(hex.EncodeToString([]byte(y))) // "efbfbd"
fmt.Println(hex.EncodeToString([]byte(y2))) // "efbfbd"
Run Code Online (Sandbox Code Playgroud)
疯狂地我无法在任何地方找到字符串类型的实现,尽管我可能看起来不够努力.