前言:
本篇為視頻學(xué)習(xí)筆記
標(biāo)識符
- ★ 標(biāo)識符(比如常量名戏罢、變量名宣蔚、函數(shù)名)幾乎可以使用任何字符
- ★ 標(biāo)識符不能以數(shù)字開頭,不能包含空白字符固逗、制表符区拳、箭頭等
常見數(shù)據(jù)類型 (只有兩大類值類型/引用類型)
如下:
以前我們在編寫OC代碼的時候Int是基本數(shù)據(jù)類型 int age = 10; 認(rèn)為比較簡單拘领,一定義完就分配4個字節(jié)給它age,說明了age只占4個節(jié)樱调。再思考一下约素,在swift中你突然來一個Int是結(jié)構(gòu)體,結(jié)構(gòu)體就意味著非常復(fù)雜笆凌,里面包含各種成員圣猎,那么所占用的存儲空間不就很大嗎?
舉個例子創(chuàng)建一個結(jié)構(gòu)體:
struct Date { var year: Int var month: Int var day:Int }
我們理解的乞而,Date結(jié)構(gòu)體占用多少內(nèi)存送悔,取決于結(jié)構(gòu)體內(nèi)部成員總共占用多少內(nèi)存。假設(shè)一個Int占用4個內(nèi)存爪模,那么Date占用 4 X 3 = 12個內(nèi)存欠啤。所以,Int結(jié)構(gòu)體占用多少字節(jié)呢呻右,會不會很大呢跪妥,是不是跟Date結(jié)構(gòu)體一樣把所有成員占用的內(nèi)存加起來呢鞋喇?其實声滥,這些,不用我們?nèi)タ紤]侦香。swift內(nèi)部肯定是有優(yōu)化的落塑,表面上看上去它是一個結(jié)構(gòu)體,它里面占用內(nèi)存的罐韩,也許不會有那么多個憾赁,可能只有一個,甚至沒有散吵。不要認(rèn)為它一旦定義為結(jié)構(gòu)體效率就低龙考、占用空間就大,不是這樣子的矾睦,一個結(jié)構(gòu)體占用空間大不大晦款,取決于它里面有多少東西。
后邊數(shù)表示占用多少個字節(jié)
如果我們要求某一個數(shù)據(jù)類型的最大值枚冗,比如說UInt8.max怎么辦呢缓溅?
可以發(fā)現(xiàn)打印出來是255,也就是說如果是無符號的Int,而且是只占用一個字節(jié)的赁温,那么它的取值范圍為0~255坛怪。
---如果是 Int16.min
發(fā)現(xiàn)了定義成結(jié)構(gòu)體淤齐,后邊可以帶屬性。Int內(nèi)部就會豐富多彩袜匿,以后Int類型就可以調(diào)用一些方法了更啄。不像以前的 int age = 10;int 后邊絕對不會帶有任何屬性,它只是基本數(shù)據(jù)類型沉帮。在以前的認(rèn)知中锈死,只有對象后面才會帶屬性,但是在swift里面不是這樣的穆壕,在swift方法是結(jié)構(gòu)體待牵,也是可以調(diào)用方法的。