1. 首页
  2. 主题
  3. Go问与答

打印结果出现%!(EXTRA 是什么意思?

ulysses · · 12226 次点击
代码如下: ``` func main(){ fmt.Printf("hello world.你好,世界!") var v1, v2, v3 int var str1 string = "000" var str2 = "123" str3 := "321" fmt.Printf("hello world. 你好中国 %d %d %d\n", v1, v2, v3) fmt.Printf(str1, str2, str3) } ``` - 输出结果如下: hello world.你好,世界!hello world. 你好中国 0 0 0 000**%!(EXTRA **string=123, string=321) Process finished with exit code 0 - 为什么会出现**%!(EXTRA**这段内容,正确的格式应该是什么样子呢?
EXTRA 是额外的,多余的意思。 你这里用的是 `fmt.Printf`,按照它的参数定义,第一个参数应当是格式串,但你这里 `str1` 并不是格式串,所以当 `fmt.Printf` 把 `str1` 当成格式串来处理的时候,发现它里面包含了 `0` 个参数占位符,可你后面还有 `str2` `str3`,所以你就会遇到这个提示。
#3
更多评论
字符串类型,你用 %d,所以报这个。改为 %s
#1
buscoop
纸上得来终觉浅,绝知此事要躬行!
值的类型与format对应串不一到处。请字符选用%s
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中