由基型指派问题导出的Golang型

由基型指派问题导出的Golang型,go,types,casting,Go,Types,Casting,我想了解将从基类型派生的类型的变量赋值为该基类型的值时出错的原因。 假设有可能完成作业,请解释如何完成 type blah uint64 func main() { var num uint64 = 55 var myb blah = num } 当我跑步时: 无法将num type uint64用作赋值中的blah类型即使uint64是blah Go的基本类型,但如果不隐式转换,则需要进行显式强制转换。如评论中所述,dovar myb blah=blahnum。对于bla

我想了解将从基类型派生的类型的变量赋值为该基类型的值时出错的原因。 假设有可能完成作业,请解释如何完成

type blah uint64

func main() {

    var num uint64 = 55
    var myb blah = num
}
当我跑步时:
无法将num type uint64用作赋值中的blah类型

即使uint64是blah Go的基本类型,但如果不隐式转换,则需要进行显式强制转换。如评论中所述,dovar myb blah=blahnum。对于blahnum,您会说‘我希望num转换为blah类型’。

var myb blah=blahnum这是go语言深思熟虑的决定。它强制您通过执行类型转换来明确显示类型,这样您就不会意外地混淆它们。例如,这对于枚举非常有用,因为您希望避免有人传递无效的数字,而不是正确的枚举常量