swift 类型安全和类型推断
Swift 是一门类型安全的语言。类型安全的语言可以让你清楚地知道代码可以处理的值的类 型。如果你的一部分代码期望获得 String ,你就不能错误的传给它一个 Int 。 因为 Swift 是类型安全的,他在编译代码的时候会进行类型检查,任何不匹配的类型都会被标记为错误。这会帮助你在开发阶段更早的发现并修复错误。 当你操作不同类型的值时,类型检查能帮助你避免错误。当然,这并不意味着你得为每一个 常量或变量声明一个特定的类型。如果你没有为所需要的值进行类型声明,Swift 会使用类型 推断的功能推断出合适的类型。通过检查你给变量赋的值,类型推断能够在编译阶段自动的 推断出值的类型。
因为有了类型推断,Swift 和 C 以及 Objective-C 相比,只需要少量的类型声明。其实常量 和变量仍然需要明确的类型,但是大部分的声明工作 Swift 会帮你做。 在你为一个变量或常量设定一个初始值的时候,类型推断就显得更加有用。它通常在你声明 一个变量或常量同时设置一个初始的字面量(文本)时就已经完成。(字面量就是会直接出 现在你代码中的值,比如下边代码中的 42 和 3.14159 。) 举个栗子,如果你给一个新的常量设定一个 42 的字面量,而且没有说它的类型是什 么,Swift 会推断这个常量的类型是 Int ,因为你给这个常量初始化为一个看起来像是一个整 数的数字。
letmeaningOfLife=42
// meaningOfLife is inferred to be of type Int
同样,如果你没有为一个浮点值的字面量设定类型,Swift 会推断你想创建一个 Double 。
Swift 在推断浮点值的时候始终会选择 Double (而不是 Float )。 如果你在一个表达式中将整数和浮点数结合起来, Double会从内容中被推断出来。
letanotherPi=3+0.14159
// anotherPi is also inferred to be of type Double
这字面量 3 没有显式的声明它的类型,但因为后边有一个浮点类型的字面量,所以这个类型 就被推断为 Double 。