繼續(xù)記錄swift知識點(diǎn):
1)枚舉
枚舉語法:
enum 枚舉名稱{
case 枚舉1名稱
case 枚舉2名稱
}
** 和 C 和 Objective-C 不同,Swift 的枚舉成員在被創(chuàng)建時(shí)不會(huì)被賦予一個(gè)默認(rèn)的整型值**
*1相關(guān)值是當(dāng)你在創(chuàng)建一個(gè)基于枚舉成員的新常量或變量時(shí)才會(huì)被設(shè)置关炼,并且每次當(dāng)你這么做得時(shí)候程腹,它的值可以是不同的。
*2原始值可以是字符串儒拂,字符寸潦,或者任何整型值或浮點(diǎn)型值社痛。每個(gè)原始值在它的枚舉聲明中必須是唯一的见转。
在原始值為整數(shù)的枚舉時(shí),不需要顯式的為每一個(gè)成員賦值蒜哀,Swift會(huì)自動(dòng)為你賦值斩箫。
例如,當(dāng)使用整數(shù)作為原始值時(shí)撵儿,隱式賦值的值依次遞增1乘客。如果第一個(gè)值沒有被賦初值,將會(huì)被自動(dòng)置為0淀歇。
->
相關(guān)值會(huì)在使用時(shí)自己賦值易核,暫時(shí)沒考慮到使用場景(可能是作為新的數(shù)據(jù)類型存儲(chǔ)數(shù)據(jù),代替oc中mvc中的model浪默?)耸成;原始值類似于oc中通常的枚舉類型。
2)結(jié)構(gòu)體
語法格式:
struct 結(jié)構(gòu)體名稱 {
屬性1
屬性2
方法1
}
例子:
例1.
struct studentMarks {
var mark1 = 100
var mark2 = 78
var mark3 = 98
}
let marks = studentMarks()
print("Mark1 是 \(marks.mark1)")
print("Mark2 是 \(marks.mark2)")
print("Mark3 是 \(marks.mark3)")
例2.
struct markStruct{
var mark1: Int
var mark2: Int
var mark3: Int
init(mark1: Int, mark2: Int, mark3: Int){
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
print("優(yōu)異成績:")
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)
結(jié)構(gòu)體可以如上例1一樣構(gòu)建浴鸿,然后實(shí)例化marks 打點(diǎn)調(diào)用屬性。也可如例2一樣弦追,有自己的init方法岳链,實(shí)例化時(shí)必須調(diào)用實(shí)例化方法構(gòu)建結(jié)構(gòu)體變量,同樣利用打點(diǎn)方法調(diào)用屬性劲件。
同樣貼一張圖方便查找不明白的點(diǎn)掸哑。