我想知道何时或是否应该在golang中使用自己的类型。什么时候对理解我的代码更友好,或者什么时候我不应该使用自己的类型。
示例:我想map
使用MAC创建类型,并命名为host:
用最简单的方式我可以做到
var machines map[string]string{
"11:22...": "myHost",
"22:33..": "yourHost",
}
在第二种方式
type MAC string
type HOST string
machines := map[MAC]HOST{
MAC("11:22..") : HOST("myHost"),
MAC("22:33..") : HOST("yourHost"),
}
在上述〔实施例,我可以让我的类型的其他CONTROLE MAC
,HOST
trought写入方法验证,比较等是更好?
第三路
type MACHINES map[string]string
m := MACHINES{}
m = map[string]string{
"11:22.." : "myHost",
"22:33" : "yourHost",
}
上面的例子对我来说最糟糕的是,对其他人的理解不够直观。我认为上面的示例也应该包含有关HOST和MAC的信息,因为键入MACHINE没什么好说的,开发人员应该如何实现,所以我想
type MACHINES map[MAC]HOST
但是,请发表评论以更好地了解golang中的使用自己的类型。
创建类型别名仅在需要添加其他方法(例如验证功能)或要记录某些值的期望用法(例如net.IP类型)时才有用。
类型别名可以帮助您防止误解API,但是如果您使用常量值则不会。例如,此代码有效:
type Host string
type Mac string
hosts := map[Mac]Host{"ad:cb..": "localhost"}
有关常量在Go中如何工作的更多信息,您可以查看Rob Pike的博客文章。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句