知識點1: let 代表變量(可以修改值)磕谅,var代表常量(一但賦初始值之后不能被修改)。
比如最大登錄數(shù)需要用let?maximumNumberOfLoginAttempts = 10 來表示,
已經(jīng)登錄的次數(shù)需要用var?currentLoginAttempt = 0 來表示
知識點2:類型注解
var?welcomeMessage:String。其中冒號的含義就是 是...類型即?welcomeMessage是字符串類型
可以同時定義多個變量的類型,用逗號隔開罩扇,表示這幾個都是同一類型的
?var age,count:Int 表示定義age和count 都是Int類型的
知識點3:字符串插值
意思就是swift可以使用該方式將變量或者是常量插入到長字符串中怕磨,使用方式為:\(常量/變量)
print("The current value of friendlyWelcome is \(friendlyWelcome) ")
// 輸出“The current value of friendlyWelcome is Bonjour!”??
知識點4:類型安全和類型推斷
類型安全 可以理解為:如果你的代碼需要的是一個String喂饥,你就不可能會傳一個Int進去,因為會報錯提示類型不匹配肠鲫。
類型推斷 可以理解為:如果你沒有進行類型注解员帮,他會根據(jù)你賦的值自動推斷出該類型是什么樣的類型
知識點5:if
在判斷條件時,if后邊的語句必須要是bool值?
let? ?i =1? ? ? ? ? ? ? ? ? ?
if? ?i? ?{
// 這個例子不會通過編譯导饲,會報錯
}
然而捞高,下面的例子是合法的:
let? i =1
if? i ==1
{
// 這個例子會編譯成功
}
知識點6:元組
元組(tuples)把多個值組合成一個復合值。元組內(nèi)的值可以是任意類型渣锦,并不要求是相同類型
let? ?http404Error = (404,"Not Found")
你可以通過下標訪問元組的值硝岗,可以使用http404Error.0? 獲取到404 ,http404Error.1 獲取到Not Found
所以元組作為函數(shù)的返回值袋毙,就非常有用型檀,比一個返回值能包含更多的信息
知識點6:可選類型
C 和 Objective-C 中并沒有可選類型這個概念
可選類型表示有2種可能:
1. 有值,可以解析該值并訪問該值
2.沒有值听盖,是nil
定義一個可選類型胀溺,如果未設置默認值,則默認值是nil
var serverResponseCode :Int?? = 404// serverResponseCode 包含一個可選的 Int 值404
serverResponseCode = nil? // serverResponseCode 現(xiàn)在不包含值
注意:nil 可以賦值給可選類型皆看,但是nil不能賦值給非可選類型的變量或者是常量
注意:
在oc中nil?是一個指向不存在對象的指針
在swift中nil不是一個指針仓坞,它是一個確定的值,用來表示值缺失Q鳌N薨!!
知識點7:與可選值搭配的if語句 和強制解析毛雇,還有可選綁定if / guard
使用可選值的三種方式:if語句 和強制解析嫉称,還有可選綁定
1.? 使用 if? 判斷不為nil 才進行使用(代碼量大,不推薦使用)
if convertedNumber !=nil
{? ?print("convertedNumber has an integer value of\(convertedNumber!)." )? ?}
2.? 如果能確定對象肯定不為空禾乘,可以使用澎埠!進行強行解包(不建議使用)
3.使用 if 可選綁定,如果有值始藕,才使用(推薦使用)
if? ?let? constantName = someOptional?
{? statements? ?}
使用可選綁定的時候蒲稳,還可以多個bool條件在一個if中氮趋,使用逗號隔開就可以了
if? let? ?firstNumber =Int("4")? ,? ?let? ?secondNumber = Int("42") ,? firstNumber < secondNumber && secondNumber <100
{ print("\(firstNumber)<\(secondNumber)< 100")? ?}
4.使用guard 語句來進行
像?if?語句一樣,guard?的執(zhí)行取決于一個表達式的布爾值江耀。我們可以使用?guard?語句來要求條件必須為真時剩胁,以執(zhí)行?guard?語句后的代碼。不同于?if?語句祥国,一個?guard?語句總是有一個?else?從句昵观,如果條件不為真則執(zhí)行?else?從句中的代碼
guard? let? location = person["location"]? else? {//條件為false 的時候執(zhí)行else的代碼
print("I hope the weather is nice near you.")? ? ?return? }? //到這里才是guard語句的結束
print("I hope the weather is nice in\(location).") //條件為true 的時候執(zhí)行guard之后的的代碼
知識點8:錯誤處理、斷言和先決條件 舌稀?(待更新)