Swift 数据类型

2,370 阅读2分钟

类型安全

Swift 是 类型安全(type safe) 的语言。它会在编译你的代码时进行 类型检查(type checks) ,把不匹配的类型标记为错误。

简单来说就是 xcode 会报错


类型推断

声明常量和变量的时候不一定需要显式指定类型。 如果你没有显式指定类型,Swift 会使用 类型推断(type inference) 来选择合适的类型。


Int

Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:

  • 在32位平台上,Int和Int32长度相同。
  • 在64位平台上,Int和Int64长度相同。
类型 大小(字节) 区间值
Int8 1 -127 到 127
Int32 4 -2147483648 到 2147483647
Int64 8 -9223372036854775808 到 9223372036854775807

UInt

Swift 也提供了一个特殊的无符号类型UInt,长度与当前平台的原生字长相同:

  • 在32位平台上,UInt和UInt32长度相同。
  • 在64位平台上,UInt和UInt64长度相同。
类型 大小(字节) 区间值
UInt8 1 0 到 255
UInt32 4 0 到 4294967295
UInt64 8 0 到 18446744073709551615

注意:尽量不要使用 UInt ,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用 Int,即使你要存储的值已知是非负的。统一使用 Int 可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断,请参考类型安全和类型推断。

        ///直接赋值
        var number = 9;
        //声明Int型变量
        var num = Int();
        /*
         不赋值会报警告
         Initialization of variable 'num' was never used; 
         consider replacing with assignment to '_' or removing it
         */
        num = 1;

浮点数

  • Double 表示64位浮点数。可以需要存储很大或者很高精度的浮点数。
  • Float 表示32位浮点数。精度要求不高的话可以使用此类型。
类型 大小(字节) 区间值
Float 4 1.2E-38 到 3.4E+38 (~6 digits)
Double 8 2.3E-308 到 1.7E+308 (~15 digits)
        var fNum = 2.11;
        var fNum = Float();
        fNum = 1.1;

布尔值

true

false

        var isOk = true;

字符串

        let string = "hello world";

字符

        var aChar : Character;
        aChar = "C";

类型别名

类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。

        typealias newInt = Int;
        var number = newInt();
        number = 1;