为什么字面值没有类型?

时间:2016-04-27 15:07:00

标签: xcode swift variables types literals

类型推断是Swift的强大属性。这意味着编译器可以从程序员提供的值推断文字的类型,不需要显式类型规范。

例如var IntNum = 3;编译器可以推断变量IntNum的类型为Int。在Xcode中,如果用户点击密钥并点击变量名称,此处为IntNum,则Xcode会告诉您它的类型。
但是,如果我在字面值3上执行此操作,则Xcode不提供任何内容。我想,我放在屏幕上的字面值根本就没有类型,只有对象变量和常量具有type属性。

我猜是这样,有人可以向我解释一下吗?

干杯 SL

1 个答案:

答案 0 :(得分:4)

没错。

来自the documentation

  

类型安全和类型推断

     

当您声明常量或类型时,类型推断特别有用   具有初始值的变量。这通常通过分配a来完成   字符值(或字面值)到该点的常量或变量   你宣布它。 (字面值是直接显示的值   在您的源代码中)

     

...

     

如果在表达式中组合整数和浮点文字,a   Double的类型将从上下文中推断出来:

let anotherPi = 3 + 0.14159
// anotherPi is also inferred to be of type Double
     

3的字面值本身没有明确的类型,等等   从存在的情况推断出适当的输出类型Double   作为补充的一部分的浮点文字。