swift語言學習體會第一章

2021-07-10 16:04:50 字數 2333 閱讀 4186

這一套博文將根據蘋果官方的《the swift programming language》一書學習過程而寫,用以記錄學習過程中所發現的問題和一些心得體會。

第一章:基礎知識

1. 我們用 let 常量,var 宣告變數,這裡唯一要注意的是當宣告的同時要麼你同時標註上型別,要麼就賦初值依靠xcode編譯器自身型別推斷出你宣告的量為什麼型別。

例:  let elephant : string  //標註為字串常量

var lion : string   //標註為字串變數

let elephant = "the big animal is elephant."    //編譯器通過你給賦的值能推斷出elephant這個常量為字串常量

var lion = "the animal where the voice from is lion。"  //編譯器通過你給賦的值能推斷出lion這個變數為字串變數

// int、double、float 等型別自行嘗試。

2. 你若想將不同型別常量或變數進行拼接,必須用顯式型別轉換,\()這種將數字轉換成字元的方法只能用在字串中。

例:var num = 15

print(label)

3. 型別別名這個看上去很雞肋但實際上卻很有用的東西簡直就是個逗比。舉例來說,你需要做乙個懷舊收音機,那上面的音量調節式靠旋鈕來調的,這時你用uint來定義音量顯然是不合適的因為uint太大了,而uint16卻正合適,可是你在程式中寫uint16誰看了你的**能知道這代表啥呢?過幾天自己也懵了,所以型別別名typealais這傢伙出現了。

例:typealais audiovolume = uint16

var radiovolume:audiovolume    //這樣收音機的聲音就成為了uint16型別

4. swift語言裡布林值只有true、false兩個表示,用0和1表示是錯誤的,這不同於嵌入式開發中的c語言。

5. 元組我認為可以跟陣列比對學習,陣列就是相同型別資料的組合,那元組不就是元素的組合麼?既然是元素那就可以是不同型別的,所以說元組是任意型別資料的組合。

陣列用方括號,元組用小括號這也是區別之一。還有就是陣列元素沒有名字,通過下標訪問,而元組內的元素可以給賦予名字。但是你若想給陣列元素賦名字,那麼這就不叫陣列了,而叫字典,而賦的名字也有專用名稱叫做key。舉個陣列例子再舉個元組例子和字典例子,對比學習。

var studentsname = ["lili","meimei","lylei"]    //乙個可變陣列

var thelist = ("mi",13,"you",28)    //乙個可變元組

//我麼來把上面的元組賦上名字試試

var thelist = (food : "mi" , foodnum : 13 , food2 : "you" , food2num : 28) 

//再定義乙個字典

var city = [ "bj" : "beijing" , "hz" : "hangzhou" , "hk" : "honking"]  //這就像乙個帶名字的陣列一樣。也可以宣告的時候寫清楚為字典型別 var city : dictionary=[ ]

6. 可選型別是啥?我覺著它就是個傻x,但問題是蘋果就這麼幹了,而且看上去還很有用。這要從蘋果的值說起,蘋果的意思是任何變數不可以為空,就是說乙個變數不含任何值這樣不行,於是蘋果搞了這個乙個可選型別,說白了就是為了代表所有可能出現空值的時候有乙個值能代替,這樣不就永遠不可能有空值了麼?呵呵,蘋果很雞賊啊!這個可以代表一切空值的傢伙就是可選型別了,它的值是nil。而使用它的辦法就是在你定義變數的時候在變數型別後面加個問號。

例:var classnumber : int? = nil    //你依然可以正常操作這個變數,但它什麼也沒有的時候就等於nil。

7. 下面通過幾行簡單的**描述一下什麼是強制解析

例:var classnumber:int? = nil

classnumber=

123

print

(classnumber!)  //該輸出結果為123  ,  如果把嘆號刪除那麼輸出的結果為optional(123),optional型別的值不可以直接參加運算必須得被轉成普通型別才可以。

當然了,蘋果提供了另一種方法宣告可選型別,舉例如下

例:var class number:int! = nil

class number = 123 

print(class number)    //這個辦法就叫隱式強制解析,上面的方法叫顯示強制解析,這部分還是得自己通過**慢慢琢磨。

補充一點,一直想問可選型別有什麼用,也問了很多人,沒有乙個明確的回答,而我能想到的就是在做出登陸介面的時候,密碼框是空的,那這個時候是不是它裡面的值型別就應該是可選型別呢?  留給以後思考吧。

第一章語言基礎

第一節 基本資料結構 1 基本資料型別 整數型 浮點型 void型 2 整型資料有哪幾種形式?各種形式之間的區別?整型資料的表示根據長短修飾符有short long int 三種形式還有signed和unsighed 還有下面的形式 3 c 中的常量 常量 const 他是一種不變的數值,不會再執行...

R語言的學習(第一章)

r語言的學習 第一章 1.3r運算子 1.3.6轉換運算 作業功能 命令執行指令碼命令 ctrl enter 清空命令控制台 ctrl l 列舉物件 ls 刪除物件 rm x 刪除所有變數 rm list ls 多行注釋 ctrl shift c 1.2.1例子 r語句由函式和賦值構成。r使用 而不...

第一章學習筆記

看c primer已經好幾遍了,但是還是有很多基礎的問題,總是那樣容易忘記,這次看的時候,決定好好的寫寫讀書筆記 希望能夠認真的堅持下去。incluede的兩種不同格式 include some file 表明檔案是乙個標準工程,查詢先檢查預定義的目錄。include my file 表明改檔案是使...