记一次无类型常量的思考


本文摘自网络,作者,侵删。

  • 常量可以是有 类型 的也可以是无类型的。字面值常量, 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设计模式之工厂模式浅谈2

Go get下载包失败问题

手撸 ssh key管理器

Go时间解析

Golang不可重入函数实现

Golang-cache是全局吗

为什么我们从 docker 转向了 Go

Golang的多态

聊聊dubbo-Go-proxy的loggerfilter

Golang在kubernetes语境下的编程范式

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...