swift——内置类型

来源:互联网 发布:球球大作战刷魔盒软件 编辑:程序博客网 时间:2024/06/04 20:13

整型

  • Int8,UInt8
  • Int16,UInt16
  • Int32,UInt32
  • Int64,UInt64
  • Int,Uint
总结:
  • Int&UInt字长依赖platform,字长为当前平台本地字长,因此32-bit platform上等同于Int32&UInt32,64-bit platform上等同于Int64&UInt64,具有跨平台和可移植
  • Int&UInt不同于其他任何Intx或UIntx类型,即在32-bit platform上,Int与Int32非同一类型,UInt与UInt32非同一类型,在64-bit platform上,Int与Int64非同一类型,UInt与UInt64非同一类型
注:除非特殊情况,整型推荐使用Int(即使只存储非负整数),一致使用Int方便代码互通,避免不必要类型转换

浮点型

  • Double:64-bit,精度至少15位小数
  • Float:32-bit,精度仅6位小数
注:在两者都满足使用情况下,推荐使用Double

布尔型

  • Bool

不支持隐式类型转换

整型,浮点型,布尔型本质都是struct,因此在swift中不支持内置类型隐式类型转换,自然也不支持内置类型运算时的类型提升,这点不同于oc
  • 不支持内置类型隐式类型,因此运算符操作数必须符合特定类型要求
  • 不支持内置类型类型提升,因此运算符操作数必须保持同一类型
func implicit_convert(){    var i8: Int8 = 5    var i16: Int16 = 5    var i32: Int32 = 5    var i64: Int64 = 5    var i: Int = 5    var ui: UInt = 5        //i16 = i8        //i = i8    //i = i16    //i = i32    //i = i64        //i = ui;    //ui = i        var f: Float = 5.0    var d: Double = 5.0        //f = d    //d = f        var b: Bool = true        //b = i    //i = b        //b = d    //d = b}

overflow

如果在编译期确定类型值overflow,编译error,这增强了代码安全性,避免因值overflow引发的逻辑错误
func overflow(){    //let i8: Int8 = 128        let c1: Int8 = 100    let c2: Int8 = 120    //let sum = c1 + c2    //print("sum = \(c1 + c2)")}
0 0
原创粉丝点击