记一次无类型常量的思考


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

  • 常量可以是有 类型 的也可以是无类型的。字面值常量, 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

查看原文:记一次无类型常量的思考

相关阅读 >>

聊聊Gost的generictaskpool

Golang如何做一个服务器?

Golang在日志中打印堆栈信息

2021-03-12:Go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理

使用 Go modules

Golang环形单项链表

最长公共子序列

简介

[译]Go语言最佳实战[一]

模块一 Go语言基础知识-库源码文件

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




打赏

取消

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

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

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

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

评论

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