Swift之类型安全和类型推断

Swift是一种类型安全的语言。类型安全的语言鼓励推荐在你代码中的值尽量要清楚其所属的类型。如果在你的代码中有一个预先好的字符串,你就不能错误地把他传递或者赋值给一个整数。

因为Swift是类型安全的,当编译你的代码时就会做类型检测并且以错误的方式标识出所有的不匹配的类型。这样使你能够在开发过程中捕获尽早的定位错误。

类型检测能帮助你避免你在不同类型之间工作时出现错误,这意并不意味着你必须为每一个声明的常量和变量指定一个明确的类型。如果你不为你需要的值指定类型,Swift就会用类型推断来计算出其恰当的类型。类型推断能够让编译器在编译你的代码时自动的推断出特定代表式的类型.能够简单的检测你提供的值。

因为类型推断,Swift需要比其它语言(C 或者 Objective-C)定义更少的类型。常量和变量还是要明确的类型,但是指定它们类型的工作不需要你来做。

类型推断在通过一个初始值来声明常量或变量时特别有用。在你创建一个常量或一个变量时经常为他们指定分配一个字面值(字面值是直接出现在你的代码中的,比如下面例子中的42,3,14159)。

例如,如果你为一个新的常量并且没有指定茏类型通过分配一个值为42的字面量时,Swift能够推断出你想这个常量的类型为是一个Int,因为你用一个整数来初始化了它的值:

       let meaningOfLift = 42

      // 类型推断 推断出它的类型为Int

同样的,你不需要指定为一个字面浮点数指定类型,Swift能够推断出你想创建一个Double

    let pi = 3,14159

   // pi 的类型为Double

Swift在浮点数据类型推断时总是选择Double。

如果你在一个表达式中把一个整数一个浮点数据的字面量相加,类型推断将会通过上下文推断出的类型为Double:

    let anotherPi = 3 + 0.14159

    // anotherPi的类型也为Double

3它自己的字面量值没有明确的类型(显示类型),所以输出的类型Double是通过存在的浮点数部分的字面值推断出来的。

 

posted on 2015-04-07 23:59  empty_cup  阅读(1078)  评论(0编辑  收藏  举报

导航