swift——内置类型

整型

  • 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值