为了账号安全,请及时绑定邮箱和手机立即绑定

当 golang 还允许不为变量指定任何类型时,它是如何静态类型化的

当 golang 还允许不为变量指定任何类型时,它是如何静态类型化的

Go
SMILET 2023-01-03 17:06:42
所有这些都在 golang 中工作: var i int = 2 var i = 2 i := 2 为什么我们说 golang 是静态类型的?它应该是动态类型的吧?如果golang是在编译时进行类型解析,那么它应该是在增加程序的编译时间,那么为什么golang以编译时间快着称呢?
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

在所有这些情况下,i是一个整数。在 的情况下i := 2,变量i隐含为整数。您可以稍后将51or分配42i,但不能将任何其他数据类型分配给 is。

Go 只是隐式地从初始赋值中推断出数据类型。


查看完整回答
反对 回复 2023-01-03
?
慕仙森

TA贡献1827条经验 获得超8个赞

它是静态类型的,因为您不能在运行时更改变量的类型。不明确指定变量的类型并不意味着变量没有类型,在这些情况下使用“类型推断”。例如,编译器查看表达式的 RHS,看到 2,然后根据规范中列举的规则决定赋予变量什么类型。


查看完整回答
反对 回复 2023-01-03
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号