本文摘自网络,作者,侵删。
- 常量可以是有 类型 的也可以是无类型的。字面值常量,
true
,false
,iota
以及一些仅包含无类型的恒定操作数的 常量表达式 是无类型的。
func main() {
// 无类型常量: 没有显示或者隐式声明其类型的常量,在一些特定的场景下编译器会自动赋予合适的类型
// 如果操作的双方都是没有声明类型的话,可以进行操作
fmt.Println('n' / 2.5) // 其中rune类型的基础类型是int32,却能与flaot64 进行除操作(只是看起来的 类型,实际是无类型)
c := 'b' // 此时变量c的类型是rune类型(已经被声明固定)
// fmt.Println(c / 2.2) // 此时int32(rune类型) 并不能与float64进行除操作
fmt.Println(c / 2.0) // 却可以与2.0这个无类型的常量进行除操作,因为2.0可以被int(2.0) == 2, 而2.2却不能int(2.2)
}
本文来自:简书
感谢作者:Casso_W
查看原文:记一次无类型常量的思考
相关阅读 >>
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。