您的位置:首页 > 移动开发 > Swift

swift——内置类型

2017-04-21 16:41 176 查看

整型

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)")
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息