- let 是 一個聲明常量的關鍵字 用它來聲明一個值 默認就不能重復賦值 如需要改默認值 那就得換var 關鍵字來聲明代碼如下:
let num1 = 7
代碼可以這麼理解:我要訂一個 叫num1 的常量 把7給它
// num1 = 8 (這一行代碼會報錯,原因我們用的是let 它的值定了以后就不能再改)
- var 是變量 意味著我可以隨時改他的值
var num2 = 7
num2 = 8
- string 是個字符串
//要訂string屬性 叫welcome的一個變量
var welcomeMessage: String
// 把hello 賦值給 welcomeMessage
welcomeMessage = "hello"
- 還可以這么寫
//要訂變量 name和comeFrom 它們屬性為: string
var name, comeFrom: String
// name 你來存儲李小龍 但你別高興地太早我隨時可以給你起別的名字因為你是變量!
name = "李小龍"
// comeFrom 你來存儲香港 但你別高興地太早我隨時可以給你起別的名字因為你是變量!
comeFrom = "香港"
- 我還要把他們打印出來我要print()函數
print(num1)
print(num2)
print(welcomeMessage)
print(name)
print(comeFrom)
- 布爾值 是假和真
let 男人花心呀 = true
let 男人不花心 = false
//布爾值 用條件語句if 的時候有用的哦看下列
if 男人花心呀 {
//如果男人花心是對的那么回個反應
print(" 說的太實在 !")
}else{
print("嗨,真他媽謊 !")
}
提示:if 語句本質是判斷 如果沒有任何條件還想用它 那你就傻了,看下列
//let age = 88
//if age = 88 {
// 會報錯
//}
//但把它可以這么些
let age = 88
if age == 88 {
}
上面兩個例子很簡單 符號 = 是表示賦值不成立比較邏輯 !反而 == 符號是表示等于 就是比較 類型自然會Bool 類型 會滿足條件語句if 的比較和判斷*/
- 元組
- 元祖是這么一個東西,多個值組合成單個復合值 牛逼的是不同類型都可以
let myLoveAndStory = ("迪麗熱巴", 25)
//上面一行代碼包含了兩個個元祖 而且返回類型不一樣的 string 和 int 類型 這意味著在swift中也可以不同類型的值放在一個元祖里面,類型可以你需要的任何一種
- 下面演示怎么取元祖成員值
let (myGril,year) = myLoveAndStory
//我還要打印me 會打印我定制的的信息
print("我女友是 \(myGril)")
print("我們談戀愛已經\(year)年了")
- 我現在只需要女友的名字不需要另一個值呀,怎么辦? 只用一個下劃線 _ 忽略值25
let (justmyGril, _) = myLoveAndStory
print("我女友是 \(justmyGril)")
//我還有第二種方式 可以放元祖的各個元素
print("我的女友是\(myLoveAndStory.0),我們戀愛已經\(myLoveAndStory.1)年了 ")
- 不過我記不住各個元素呀 ,我要給他們起個名 好辦,起的名字在前面:元素在后面
let myFamily = (somePeople: 4, LoveWho: "mother")
//現在呢,我元素的標簽名來訪問元祖的各個值
print("我家里有\(myFamily.somePeople)口人,我愛\(myFamily.LoveWho)")
//接下來就可選類型了 ,它的概念就是有值或者是沒有值
let testString = "abc"
let changeString = Int(testString)
- 我要定義一個可選類型的變量但是暫時不想給他一個默認值,變量的值將會自動設置為nil
var money: String?
//可選類型特征就是要么有值要么沒有值,兩種可能都有,那么我就要if語句來比較和判斷
if money != nil{
print("i have some mony")
}else{
print("im sorry ,no mony . ")
}
- 可選類型optional 的if語句綁定
if let num1 = Int("3"), let num2 = Int("7"), num1 < num2 && num2 < 10{
print("\(num1) < \(num2) < 100")
}
- 然后就是可選類型解包這個玩意 , 聽起來很陌生,用起來很簡單 看下面代碼:
let optinalString: String? = "hello, im just a optional string "
let 我要用上面的值 :String = optinalString!
- 上面第一行string后面加了?意味著 它是一個optional 可選類型 但我給他一個默認值了就是一段文字并且我還想要拿它的值,我要用它!感嘆號來解包 , 解包這個東西意思就是我知道可選類型有一個值 我要用它!
- 用斷言調式 assert (中文意思:維護,堅持;斷言;主張;聲稱)
- 下面的代碼可以這麼理解 ,如果年齡滿足那么執行,如果不滿足就要停止,代碼中的18改成28的話就不滿足條件程序會被assert 終止 會報錯:error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
let age1 = 10
assert(age1 >= 5, "得上學")
assert(age1 >= 0)
if age1 > 13{
print("是中學生")
}else if age1 > 0 {
print("反正有一個人,不知道幾歲")
}else{
assertionFailure("一個人的年齡還能小于零嗎?")
}