分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
我在编写demo时,刚遇见个小问题一直不明白,请求各位解答一下。代码如下:
```
package main
import (
"fmt"
)
func MySprintf(tag string, format string, v ...interface{}) {
msg := fmt.Sprintf(format, v)
fmt.Println("msg: " + msg)
fmt.Println(tag + ": " + msg)
}
func main() {
v := fmt.Sprintf("%s is bigger than %s", "beijing", "shanghai")
fmt.Println("value: " + v)
MySprintf("main/MySprintf", "%s is bigger than %s", "beijing", "shanghai")
}
```
执行结果:
```
value: beijing is bigger than shanghai
msg: [beijing shanghai] is bigger than %!s(MISSING)
main/MySprintf: [beijing shanghai] is bigger than %!s(MISSING)
```
"beijing"和"shanghai"明明是两个变参,怎么会替换到一个值去了?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信3943 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传