森林海
不,Go 不支持文字类型(a la TypeScript)。而且,它实际上不能,因为零值。每个类型都有一个零值,它总是存在并且总是可以分配给它。当声明一个类型的变量时,它们被隐式分配给它们类型的零值。对于整数 ( int, uint, int32, uint32, int64, uin64) 或浮点数 ( float32, float64) 或复数 (complex64或complex128) 类型,这只是0(0.0分别)。对于字符串类型,这是空字符串""。对于切片、映射、指针、通道和接口,零值为nil.对于数组(不是切片:数组是具有静态已知长度的值类型);它们的零值只是重复填充每个槽的元素类型的零值结构类型的零值是其所有字段均为零值的结构在任何情况下,因为任何类型总是可能有一个零值,所以创建一个只允许任何特定非零值的类型是不兼容的。最好的字面量类型"foo"可能代表的是该值要么是"foo"零值""(不,Go 无论如何都不支持这个)。您能做的最接近的是constant 声明,或者恰好返回固定值而不是实际字段的接收函数。