2022-10-04:以下go语言代码输出什么?A:{123} main.T{x:123} B:{123} T{x:123} C:boo boo D:boo main.T{x:123}。
代码语言:go复制package main
import "fmt"
type T struct {
x int
}
func (t T) String() string { return "boo" }
func main() {
t := T{123}
fmt.Printf("%vn", t)
fmt.Printf("%#vn", t)
}
答案选D。
%v 按默认格式输出。
% v 在%v的基础上额外输出字段名。
%#v 在% v的基础上额外输出类型名。
%v和% v直接输出String方法,%#v按展开输出。
这道题没啥诀窍,只能硬记住。