一、常量和變量
let maxNum = 1000 //常量
var sum = 999 //變量
sum = 10000 //可改變變量的值
二、聲明類型
var website:NSString //聲明類型
website = "my name is ..." //賦值
print(website)
三、大數位數字區分
let hahaha = 1_000_000 //可以用_區分大數位數字,不影響賦值
四、類型強轉
let a = 3.0
let b = 1
let pi = a + Double(b) //不能兩個類型不同的數值相加,必須強轉類型一致
五、類型強轉
let 哈哈 = "你并不認識我" //可以用漢字當變量名
哈哈 + ".我是哈哈" //字符串拼接
六、bool
let father = true //bool值必須是小寫的true,false
let mother = false
//if語句寫法,條件不加括號,而且不為0的數值不表示真,條件必須是表達式或者布爾值
if 3 + 5 == 8 {
print("mother")
}
else if father
{
print("father")
}
七、元組
let connetResult = (404, "NOT FOUND") //元組
let (connrctState, ResultStr) = connetResult //給元組中值起名,方便提取
connetResult.0 //提取元組中值
ResultStr //提取元組中值
let registResult = (isRegisterSucces : true , nickName : "花花" , sex :"女")
//直接給元組值起名
registResult.isRegisterSucces //提取元組中值
registResult.nickName //提取元組中值
registResult.2 //提取元組中值
let loginReult = (true, "女神")
let (isLogin, _ ) = loginReult //可以用_忽略不想提取的值
if isLogin {
print("登錄成功")
}
let loginResult : (Bool , String) = (true , "女神") //標記類型
八、Optionals可選值
可選值,或者是一個值,或者沒有值,沒有值時為nil
var p:Int
p = 1
p //沒有經過上一步初始化的值,是不可以直接使用的
var imOptional:Int? //定義可選值
imOptional //可直接使用
imOptional = 12 //也可初始化一個值
//let userInput = "abc"
let userInput = "18" //userInput為用戶輸入的年齡
var age = Int(userInput) //age是提取輸入值能否轉成int行,返回可選值類型
if age != nil {
print("your age is \(age)") //\(age) 可輸出age值 但會輸出Optional類型提示
print("your age is \(age!)") //\(age) 可輸出age值 用感嘆號表示明確有值,進行解包
//print("your age is" + String(age)) //\(age) 會報錯,不能強制轉換可選項
print("your age is" + String(age!)) //\(age) 在明確有值的情況下,用!解包就可以強制轉換
} else {
print("Invalidate userInput")
}
//Optional Binding
if let userAge = Int(userInput)
{
print("your age is \(userAge)") //該方式直接輸出無Optional類型提示
}
let StrA:String? = "test"
StrA //調用會有Optional類型提示
StrA! //解包后調用,沒有Optional類型提示
let StrB:String! = "test" //確認有值可直接!解包
StrB