数据类型 swift 中常见的数据类型 Int 、Float、Double、Character、String Array、Dictonary、元组类型(Tuple)、可选类型(Optional) 可以看出,数据类型的首字母都是大写的 如何指定变量 常量的数据类型 在常量 变量名后面加上冒号(:)和类型名称 let age:Int = 10 上面代码表示:定义了一个Int类型的变量age 初始值是10 一般来说 没有必要明确指定变量 常量的类型 如果在声明常量、变量时赋了初始值 Swift 以自动推断出这个常量、变量的类型 let age = 20 //Swift 会推断出age是Int类型 因为20是个整数 变量初始化 Swift严格要求变量在使用之前必须进行初始化 因为Swift是强类型 而且是类型安全的语言 两个类型不一样是不能相加的 下面的写法是错误的 var a:Int let c = a + 10 第一行代码中:Swift并不会为变量a赋初值 a没有初始化 第二行代码会报错 下面的代码是正确的 var a:Int = 20 let c = a + 10 整数分为2种类型 有符号(signed) 正 负 0 无符号(unsigned) 正 负 0 Swift提供了8、16、32、64位的有符号和无符号的整数 比如 UInt8: 8位无符号整型 Int32: 32位有符号整型 Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64 最值 可以通过max 和min 属性来获取某个类型的最小值和最大值 let minValue = UInt8.min let maxValue = UInt8.max Int和UInt Swift 提供了特殊的有符号整型和无符号的整型 Int\UInt的长度和当前系统平台一样 在32为系统平台上 Int和UInt 的长度是32位 在64为系统平台上 Int和UInt 的长度是64位 Int在32位系统平台的取值范围:-2147483648~2147483647 建议 在定义变量时 不要总考虑有符号 整数长度的问题 尽量使用Int 这样可以保证代码的简洁性 和可复用 不会出现强制转换的代码 存储范围 每种数据类型都有自己的存储范围 Int8存储的范围是:-128~127 UInt8的存储范围是:0~255 如果数值超出了存储范围 编译器就会直接报错 下面的语句会直接报错 let num1:UInt8 = -1 let num2:Int8 = Int8.max + 1 第一行代码报错原因UInt8不能存储负数 第二行代码报错的原因Int8能存储的最大值是Int8,max 整数的表示形式 整数的4中表示形式 十进制:没有前缀 let i1 = 10 //10 二进制:以0b为前缀 let i2 = 0b1010 //10 八进制:0o为前缀 let i3 = 0o12//10 十六进制:以0x为前缀 let i4 = 0xA //10 浮点数 浮点数:就是小数 Swift提供了两种浮点类型 Double:64位浮点数 当浮点值非常大或需要非常精确的使用此类型 Float: 32位浮点数 当浮点值不需要使用Double的时候使用此类型 精确程度 Double 至少15位小数 Float 至少6位小数 如果没有明确说明类型 浮点数默认就是Double类型 let num = 0.14 浮点数的表示形式 浮点数 可以使用十进制和十六进制2种进制来表示 十进制没有前缀 没有指数 let d1 = 12.5 有指数 let d2 = 0.125e2 十六进制(以0x为前缀且一定要有指数) let d3 = 0xC.8p0 ==0xC.8*2o==12.5*1 let d3 = 0xC.8p1 == 12.5*2 ==25 数字格式 数字可以增加额外的格式 使他们更容易阅读 可以增加额外的0 let money = 001999 //1999 let money2 = 001999.000 //1999.0 可以增加额外的下划线_增强可读性 1. let oneMillion1 = 1_000_000 //1000000 2. let oneMillion2 = 100_0000 // 1000000 3. let overOneMillon = 1_000_000.000_001//1000000.000001 增加了额外的0_ 并不会影响数值的大小 类型转换 两个类型不的同的数值 是不能直接进行计算的 下面的语句是错误的 let num1:Uint8 = 10 let num2:Int = 20 let sum:Int = num1 + num2 第3行会 报错 报错原因:num1是UInt8类型的,num2是类型Int 类型不同 将num1转化为Int类型 就能与num2进行相加 下面的语句是正确的 let sum:Int = Int(num1) + num2 下面的语句是正确的 let sum = 3 + 2.14 两者的相加结果是5.14 等赋值之后 编译器会自动推断出sum是Double 类型 类型别名 可以使用typealias关键字定义类型的别名 跟C 语言的typedef作用类似 typealias MyInt = Int //给Int类型起了个别名加做MyInt 原类型名称能用在什么地方 别名就可以用在什么地方 声明变量、常量类型 let num:MyInt = 20 获得类型的最值 let minValue = MyInt.min 类型转换 let num = MyInt(3.14)//3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。