golang fmt包Stringer接口测试实例

Stringer接口结构如下:

type Stringer interface {
    String() string
}

作用:

实现了Stringer接口的类型(即有String方法),定义了该类型值的原始显示。当采用任何接受字符的verb(%v %s %q %x %X)动作格式化一个操作数时,或者被不使用格式字符串如Print函数打印操作数时,会调用String方法来生成输出的文本。

int类型实现String()方法

type intExtend int

func (s intExtend) String() string {
	return fmt.Sprintf("%d extend", int(s))
}

var i int = 5
var ie intExtend = 5
fmt.Printf("%s\n", i) 	// %!s(int=5)
fmt.Printf("%s\n", ie)	// 5 extend

fmt.Printf("%q\n", i)	// \x05
fmt.Printf("%q\n", ie)	// 5 extend

fmt.Printf("%v\n", i)	// 5
fmt.Printf("%v\n", ie)	// 5 extend

fmt.Printf("%x\n", i)	// 5 (数值的16进制)
fmt.Printf("%x\n", ie)	// 3520657874656e64 ( 等同 fmt.Printf("%x\n","5 extend") )

fmt.Printf("%X\n", i)	// 5 (数值的16进制)
fmt.Printf("%X\n&

你可能感兴趣的:(GO,GO语言测试实例,go,fmt,Stringer)