忘了在哪本书上看到的例子:
package main
import "fmt"
func main() {
// 不指定类型时为浮点数
var a = 2e3
fmt.Printf("%T: %v\n", a, a) // 输出:float64: 2000
// 编译成功,因为 1.5e3 等于 1500 ,是一个整数
var b int = 1.5e3
fmt.Printf("%T: %v\n", b, b) // 输出:int: 1500
}
上面代码中,为什么 var b int = 1.5e3
能通过编译,难道科学计数法被视为算术表达式或常量表达式?不然我只能认为 Go 语言存在隐式类型转换了。
有请知道的大佬解答原因,还有没有类似的情况呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.