Swift语言指南(四)--类型安全和类型推断

Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确。如果你的代码中有部分值需要String类型,你就不能错误地传递Int

鉴于Swift的类型安全,编译代码时,Swift会执行类型检查并将任何类型不匹配的地方标记为错误,使你在开发当中尽可能早的捕获并修正错误。

类型检查有助于你在操作不同值的类型时避免犯错。但这并不意味着你必须在声明每一个常量或变量时去检查类型,如果你不检查所需值的类型,Swift会执行类型推断来计算出相应地类型。

类型推断让编译器在编译代码时,根据你提供的值,自动推测出特定表达式的类型。

基于类型推断,Swift对类型声明的需要远比C或Objective-C语言要少得多。常量与变量仍然有明确的类型,但明确指定类型的工作已经由编译器代你完成。

当你声明一个常量或变量并赋予一个初始值时,类型判断尤其有用。通常通过在声明时赋字面值literal value,或称“字面量literal)实现(类型判断)。(字面值指直接出现在源代码中的值,如下例中的 423.14159

比如说,你给一个新的常量赋一个字面值42但未指定其类型时,Swift会推断你想要一个Int型的常量,因为你初始化时提供的数字像一个整数:

1 let meaningOfLife = 42
2 // meaningOfLife 被推断为Int

同样的,如果不为浮点数字面量指定类型时,Swift会推断你想要创建一个Double型:

1 let pi = 3.14159
2 // pi 被推断为Double

Swift在推断浮点数数字时通常会选用Double(而不是Float)。

如果你在表达式中结合了整数和浮点数字面量,Swift会根据上下文中推断返回Double型:

1 let anotherPi = 3 + 0.14159
2 // anotherPi 会被推断为Double

上例中,字面值3自身不属于某个类型,也未明确指定类型,根据当前附加部分的浮点数字面量推断并适当地输出Double型。

 

谢谢,Swifter-QQ群:362232993,同好者进~ 

Fork:https://github.com/Joejo/Swift-lesson-for-chinese

 

 

 

 

 

 

posted @ 2014-06-08 10:52  Joe.Huang  阅读(1229)  评论(0编辑  收藏  举报