你的位置:首页 > 操作系统

[操作系统]03_Swift2基础之基本数据类型

1. 整数

 整数就是没有小数部分的数字,比如`42`和`-23`。整数可以是`有符号`(正、负、零)或者`无符号`(正、零)。

 Swift 提供了8,16,32和64位的有符号和无符号整数类型。这些整数类型和 C语言的命名方式很像,比如8位无符号整数类型是`UInt8`,32位有符号整数类型是`Int32`。就像 Swift 的其他类型一样,整数类型采用大写命名法。

 1> 整数范围

  你可以访问不同整数类型的`min`和`max`属性来获取对应类型的最大值和最小值:

     let minValue = UInt8.min  // minValue 为 0,是 UInt8 类型的最小值

     let maxValue = UInt8.max  // maxValue 为 255,是 UInt8 类型的最大值

 2> Int(有符号整型)

  一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型`Int`,长度与当前平台的原生字长相同:

   * 在32位平台上,`Int`和`Int32`长度相同。

   * 在64位平台上,`Int`和`Int64`长度相同。

  除非你需要特定长度的整数,一般来说使用`Int`就够了。这可以提高代码一致性和可复用性。即使是在32位平台上,`Int`可以存储的整数范围也可以达到`-2147483648`~`2147483647`,大多数时候这已经足够大了。

 3>UInt(无符号整型)

  Swift 也提供了一个特殊的无符号类型`UInt`,长度与当前平台的原生字长相同(具体范围见 1>整数范围):

   在32位平台上,`UInt`和`UInt32`长度相同。

   在64位平台上,`UInt`和`UInt64`长度相同。

  > 注意:尽量不要使用`UInt`,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用`Int`,即使你要存储的值已知是非负的。

  统一使用`Int`可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推测,请参考[类型安全和类型推测](#type_safety_and_type_inference)。

2. 浮点数

 

 1> 浮点数概述

  浮点数是有小数部分的数字,比如`3.14159`,`0.1`和`-273.15`。

  浮点类型比整数类型表示的范围更大,可以存储比`Int`类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:

   `Double`表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。

   `Float`表示32位浮点数。精度要求不高的话可以使用此类型。

  > 注意:`Double`精确度很高,至少有15位数字,而`Float`最少只有6位数字。选择哪个类型取决于你的代码需要处理的值的范围。

  上面是一个正无穷数, 自然还存在负无穷数, 如下图:

  在Swift中还存在其他的一些奇特的类型, 大家感兴趣可以研究一下

      } else {
         println("Eww, turnips are horrible.")
      }
      // 输出 "Eww, turnips are horrible."

  条件语句,例如`if`,请参考[控制流]。

  如果你在需要使用`Bool`类型的地方使用了非布尔值,Swift 的类型安全机制会报错。下面的例子会报告一个编译时错误:

   let i = 1

   if i {
          // 这个例子不会通过编译,会报错
      }

  然而,下面的例子是合法的:

   let i = 1
       if i == 1 {
         // 这个例子会编译成功
       }

  `i == 1`的比较结果是`Bool`类型,所以第二个例子可以通过类型检查。类似`i == 1`这样的比较,请参考[基本操作符]。