type使用场景
1.定义结构体
type Brand struct {
}
func (t Brand) Show() {
}
2.作别名
在 Go 1.9 版本之前定义内建类型的代码是这样写的:
type byte uint8
type rune int32
而在 Go 1.9 版本之后变为:
type byte = uint8
type rune = int32
区分类型别名与类型定义
type NewInt int
type IntAlias = int
func main() {
var a NewInt
fmt.Printf("a type: %T\n", a)
var a2 IntAlias
fmt.Printf("a2 type: %T\n", a2)
}
a type: main.NewInt
a2 type: int
批量定义结构体
type (
PrivateKeyConf struct {
Fingerprint string
KeyFile string
}
SignatureConf struct {
Strict bool `json:",default=false"`
Expiry time.Duration `json:",default=1h"`
PrivateKeys []PrivateKeyConf
}
)
单个定义结构体
type PrivateKeyConf struct {
Fingerprint string
KeyFile string
}
type SignatureConf struct {
Strict bool `json:",default=false"`
Expiry time.Duration `json:",default=1h"`
PrivateKeys []PrivateKeyConf
}