swift——内置类型
2017-04-21 16:41
176 查看
整型
Int8,UInt8Int16,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)") }
相关文章推荐
- Swift中UIAlertController的使用
- swift开发笔记18 - 获取当前位置坐标和地址
- swift2.0 学习笔记Fourteen
- Objective-C与Swift混编
- Swift中class func与static func的区别
- Swift 区间类型
- The beginning iOS8 Programming with Swift 中文翻译 - 2
- Swift 中使用 SQLite——批量更新(事务处理)
- 用swift开发自己的MacOS锁屏软件(3)
- app 主题切换库(swift)
- OC与Swift的区别三(条件语句)
- swift.org - About Swift 官网关于notes
- 如何使用Instruments诊断App(Swift版):起步-b
- iOS swift 支持中文斜体的方法 自己整理
- swift3 xib自定义view
- swift 创建单例模式
- Swift开源了,有什么好处?
- Swift-Realm简单使用,代替Sqlite、Crodata的强大数据库
- swift中 怎么把NSURLSESSION 网络请求get到的数据 拿出来用
- Swift 波浪动画