代码如下:
```
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