Swift中数据类型及用法
1、Swift中常用的数据类型有:
Int、Float、Double、String 、Bool、Character、Array、Dictionary、元组类型、可选类型
2、如何指定变量、常量的数据类型
在常量、变量名后面加:
类型名称
var name:String = "android_ls"
var age:Int = 28
一般来说没必要指定变量、常量的数据类型,在声明常量、变量时赋予初始值,Swift可以自动推断出这个变量、常量的数据类型。
我们来看下面这行代码
var age = 28
Swift会推断出age是Int
类型,因为28是个整数
3、Swift严格要求变量在使用前必须进行初始化,下面的代码是错误的
Swift是强类型的语言,任何一个变量或者常量都有明确的类型。
4、整数
* 整数分为两种:
有符号(signed):正、负、零
无符号(unsigned):正、零
Swift提供了8、16、32、64的有符号和无符号整数(Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt16
),比如
UInt8
:8位无符号整型
Int8
:8位有符号整型
- 获取Int最值:(最大值、最小值)
var minValue = Int.min;
var maxValue = Int.max;
Int、UInt : 和平台相关(默认,相当于OC的NSInteger)
在定义变量时,别总是在考虑有无符号、数据长度的问题,尽量使用Int,这样可以保证代码的简洁和可复用性。
存储范围:
每种数据类型都有各自的存储范围,比如
Int8的存储范围:-128~127
UInt8的存储范围:0~255在Swift中,如果数值超过了存储范围,编译器会直接报错,下面的语句都会直接报错。
整数的四种表现形式:
十进制数:没有前缀
let a1 = 10
二进制数:以0b
为前缀
let a2 = 0b1010
八进制数:以0o
为前缀
let a3 = 0o12
十六进制数:以0x
为前缀
let a4 = 0xA
5、浮点数
* Swift提供了两种浮点数类型:
Float
: 32位浮点型
Double
: 64浮点型(默认)
* 精确度:
Float
: 至少6小数
Double
: 至少15小数
* 浮点数的声明
let a:Float = 3.232
let b:Double = 3.1415926
如果没有明确的说明浮点数的类型,默认是
Double
类型的。
Float
和Double
类型的变量不能直接进行运算操作,如下
浮点数的表现形式:
十进制(没有前缀)
没有指数:let a1 = 12.7 // 12.7
有指数:let a2 = 0.127e2 // 12.7
0.127e2 = 0.127 * 10的二次方 MeN = M * 10的N次方
十六进制(以0x为前缀,且一定有指数)
let a3 = 0xA // 10
let a4 = 0xAp1 // 10 * 2的1次方 == 10 * 2
0xMpN = 0xM * 2N次方
6、数字格式(增加额外的0和下划线并不会影响数值原来的大小
)
数字可以增加额外的格式,使其更容易阅读
* 可以增加额外的0
let money1 = 001988
let money2 = 001988.000
let money3 = 100_0000
let money4 = 100_000_000
示例效果图如下:
7、Swift中基本运算,数据类型转换
整数和浮点数支持的运算:+、-、*、/、%
在进行基本运算时必须保证类型一致,否则会出错。
8、类型别名
* 使用typealias
关键字定义类型的别名
// 给Int类型起个别名叫BoloInt typealias BoloInt = Int
原类型名称能用在什么地方,别名就能用的什么地方
- 声明变量、常量
var a:BoloInt = 23
let b:BoloInt = 27
- 获得类型的最值
let minValue = BoloInt.min
- 类型转换
let result = BoloInt(3.1416)