import UIKit
var str = "Hello, playground"
//1.變量痹屹,常量
let max = 10
var current = 0
if current < max {
print(current)
}
var x = 0,y = 0.0
//2.類型標(biāo)注
var message:String
message = "Hello"
//常量和變量的命名可以使任何喜歡的字符,但是,不能包含數(shù)學(xué)符號昼浦,箭頭,保留的(或者非法的)Unicode 碼位政供,連線與制表符雄家,也不能以數(shù)字開頭
let pai = 3.14
let 你好 = "中國????"
let ?? = "??"
let ww2 = "heihei"
let bool = false
//3.分號
//并不強(qiáng)求在每一行的末尾添加分號氮双,也可以根據(jù)自己習(xí)慣添加碰酝,但是有一種情況必須添加,你打算在同一行添加多條獨(dú)立語句的時(shí)候戴差,必須用分號隔開
let first = 0; var second = "haahhaah";print(first,second)
//4.整數(shù):沒有小數(shù)部分的數(shù)字送爸,包括有符號整數(shù)(正,負(fù)暖释,零)和無符號整數(shù)(正袭厂,零)
//swift提供 8,16球匕,32纹磺,64位有符號和無符號整數(shù)類型
//整數(shù)范圍:可以訪問不同類型整數(shù)的最大值和最小值
let minValue = UInt8.min
let maxValue = UInt8.max //(2的8次方)
let min16 = UInt16.min
let max16 = UInt16.max //(2的16次方)
//Int
//一般情況下,不需要專門指定整數(shù)長度亮曹,Int的長度與當(dāng)前平臺的原生字長相同
let minInt = Int.min //(本機(jī)最小字長,64位)
let maxInt = Int.max
//數(shù)值型字面量
//十進(jìn)制:沒有前綴
//二進(jìn)制:0b
//八進(jìn)制:0o
//十六進(jìn)制:0x
//如果一個(gè)十進(jìn)制數(shù)的指數(shù)為 exp橄杨,那這個(gè)數(shù)相當(dāng)于基數(shù)和10^exp的乘積:
print(1.25e2)//1.25*10^2
print(1.25e-2)//1.25*10^-2
//如果一個(gè)十六進(jìn)制數(shù)的指數(shù)為exp,那這個(gè)數(shù)相當(dāng)于基數(shù)和2^exp的乘積:
print(0xFp2) //15*2^2
print(0xFp-2) //15*2^-2 相當(dāng)于15*1/4
//整數(shù)類型轉(zhuǎn)換,其他類型轉(zhuǎn)換類似
let twoThousand:UInt16 = 2_000
let one:UInt8 = 1
let sum = twoThousand + UInt16(one)
//5.類型別名照卦,typealias
//給現(xiàn)有類型起一個(gè)別的名字式矫,當(dāng)你想要給現(xiàn)有類型起一個(gè)更有意義的名字時(shí),類型別名非常有用役耕。
typealias AudioSample = UInt16
var maxAudioS = AudioSample.max
//6.BOOL 布爾值 true false
let yes = true
let no = false
//Bool類型和整型不可以轉(zhuǎn)換,非零即真在swift中是不適用的
//7.元組
//元組把多個(gè)值組合成一個(gè)復(fù)合值采转,元組內(nèi)的值可以使任意類型,并不要求是相同類型
let httpError = (404,"Not Found")
//httpError的類型是(Int瞬痘,String)故慈,值是(404,"Not Found")
//可以將元組內(nèi)容分解成單獨(dú)的常量和變量板熊,然后就可以使用它們了
let (statusCode,statusMessage) = httpError
print("錯(cuò)誤碼:(statusCode),錯(cuò)誤信息:(statusMessage)")
//如果你只需要一部分的元組值,分解的時(shí)候可以把要忽略的部分用(_)標(biāo)記
let (justCode,_) = httpError
print("錯(cuò)誤?? \(justCode)")
//可以通過下標(biāo)訪問元組中的元素,下標(biāo)從0開始
print(httpError.0)
print(httpError.1)
//定義元組的時(shí)候給單個(gè)元素命名惯悠,命名后可以通過名字訪問元組元素的值
let httpOK = (code:200,desc:"OK")
print(httpOK.code)
print(httpOK.desc)
//作為函數(shù)返回值的時(shí)候邻邮,元組是非常有用的
//8.可選類型 optionals
//使用可選類型來處理值可能缺失的情況,可選類型表示:
//1》有值克婶,等于x
//2》沒有值
//例如:String轉(zhuǎn)Int筒严,有可能成功,也有可能失敗
let possibleNum = "123"
let possibleStr = "Hello"
let converNum = Int(possibleNum)
let converStr = Int(possibleStr)
print(possibleNum)
print(possibleStr)
var cc = converNum! + 1
//var dd = converStr! + 1 //報(bào)錯(cuò)
//上面的轉(zhuǎn)換還可以這么寫
let conver:Int? = Int(possibleNum)
let conver2:Int? = Int(possibleStr)
var ee = converNum! + 1
//var ff = converStr! + 1 報(bào)錯(cuò)
//你可以給一個(gè)可選變量賦值為nil表示它沒有值
var serverResCode:Int? = 404
serverResCode = nil //現(xiàn)在serverResCode不包含值
//注意:nil不能用于非可選的變量或者常量
//如果你聲明一個(gè)可選的常量或者變量但是沒有賦值情萤,它們會(huì)自動(dòng)設(shè)置成nil
var surverAnswer:String?
//注意:Swift的nil和OC的nil的意義是不一樣的鸭蛙,OC中的nil是指向不存在對象的指針。在Swift中筋岛,nil不是指針娶视,它是一個(gè)確定的值,表示值缺失睁宰。任何類型的值缺失都可以被設(shè)置成nil肪获,而不只是對象類型。