我是学习swift和iOS的新手,并在他们的文档中阅读:
如果在表达式中组合整数和浮点文字,将从上下文中推断出Double类型:
let anotherPi = 3 + 0.14159
// anotherPi is also inferred to be of type Double
3的字面值本身没有明确的类型,所以 从存在的情况推断出适当的输出类型Double 作为补充的一部分的浮点文字。
据我所知,如果你尝试添加一个显式整数类型和一个显式的double类型,swift会给你一个错误,因为你不能在swift中添加一个int和一个double。文档中的上述引用是否意味着整数文字3被swift推断为double类型,然后添加到浮动文字0.14159,也推断为double类型?或者它只是意味着如果你添加一个int文字和一个浮点文字输出被推断为一个双?
答案 0 :(得分:1)
默认情况下,浮点文字被推断为Double
。你可以在游乐场测试一下:
// Swift 3
let a = 0.14159
print(type(of: a)) // Double
let b = 1 + a // works
let c = Int(1) + a // doesn't work
示例B有效,因为整数文字1
可以推断为Double(因为它被添加到Double
)。示例C不起作用,因为1是显式Int
。这保留了Swift的数字类型安全性,同时仍然可以轻松执行简单的数学运算。