当前位置:首页 » IOS文章 » Swift 基本数据类型

Swift 基本数据类型

作者:KNN   日期:2020-02-26   分类:IOS文章

基本数据类型–整型

var imInt: Int = 80  //有符号整型
// Int 其存储空间是有限的,位数默认跟机器相应
Int.max //查看最大值
Int.min //查看最小值

var imUInt: UInt = 80 //无符号整型
UInt.max //是Int.max的两倍多1,
UInt.min // 0 ,不能存储负数

Int8.max // 127,8位整型
Int8.min //-126

UInt16.max
UInt16.min

Int32.max
Int32.min

UInt32.max
UInt32.min

Int64.max
Int64.min

UInt64.max
UInt64.min

let decimalInt: Int = 17
let binaryInt: Int = 0b10001 //二进制整型17

let octalInt: Int = 0o21     //八进制整型17

let hexInt: Int = 0x11       //十六进制整型17

let oneMillion= 1_000_000 //数值过大时,可用下划线分割,三位一组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

基本类型–浮点数和类型转换

//浮点数
let inFloat: Float = 3.1415926 // 其实际值为 3.14159
let inDouble: Double = 3.1415926
let x = 3.1415926 //根据其位数,默认为Double
var a = 1.25e10
var b = 1.25e-8
var c = 1_000_000.000_000_1

CGFloat //图形相关浮点数
// 例如: UIColor的参数类型皆是CGFloat
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
//类型转换---Swift无法进行隐式的类型转换
let x: UInt16 = 100
let y: UInt8 = 20
x+y //会报错,类型不同而导致无法相加,必须显式转换类型
let m = x + UInt16(y)
let n = UInt8(x) + y //该算式会提示溢出,x超出内存
// 同样适用于浮点数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

基本类型–布尔型

let imTrue: Bool = true
let imFalse: Bool = false

// swift 中()不是必须,也可加(),提升优先级
if imTrue{
    print("I'm True")
}else{
    print("I'm False")
}


if imFlase{
    print("I'm False")
}else if 3+4 == 7{
    print("3+4 == 7")
}

//下面的算式时错误的 swift中不能判断Int为Bool 
if 1{
    print("True")
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

基本类型 – 元组

// Tuple 将多个不同的值集合成一个数据
var point = (5,2) // 点坐标

var httpResponse = (404,"Not Found")
// 可以有多个任意值,不同的值可以是不同的类型

//显式声明类型
var point2: (Int, Int, Int) = (10, 5, 2)
var httpResponse: (Int,String) = (200,"Ok")

// 获取元组中的值,进行解包
let (x, y) = point
x == 5
y == 2
// 或者 
point.0 == 5
point.1 == 2

let (statusCode, statusMessage) = httpResponse

let point3 = (x:3,y:2)
point3.x == 3
point.y ==2

let point4:(x:Int,y:int) = (10,5)
point4.x ==10
point4.y == 5

let loginResult = (true, "admin")
let (isLoginSuccess, _) = loginResult
// _下划线表示不需要解包第二个值
if isLoginSuccess{
    print("Login Success!")
}else{
    print("Login failed!")
}
                    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

 

 

 

文章来源网络:点击这里查看源文.