Swift學習筆記

2022-08-26 19:39:11 字數 2437 閱讀 6320

看了幾天的swift,只是有了基本的印象。總感覺比較換混亂,可能源自與自己沒怎麼學過指令碼語言。索性,邊看邊記,加深印象。

進入正題:

1、swift是什麼?

在《the swift programming language》中,也可以看到對swift的描述。大致如下:

swift用來寫ios和os x程式。

swift吸取了c和objective-c的優點,且更加強大易用。

swift可以使用現有的cocoa和cocoa touch框架。

swift兼具編譯語言的高效能(performance)和指令碼語言的互動性(interactive)。

簡言之:swift是一門開發ios和os x的,(可能)比oc好用的程式語言。

2、swift的基礎語法

2.1 swift的資料型別基基礎用法

最直觀的感受:不用寫分號了,但是需要嚴格!小心!注意!仔細!空格的使用。而且真的和指令碼語言很像。例如宣告常量let,宣告變數var,輸出println()

eg:

var str:string = "swift"

let num = 321

str = str + string(num)

println("\\hello " + str);

輸出:\hello swift

說明一下,宣告不定型別的變數直接var,指定型別則var 變數名:變數型別 = "變數值"。let也一樣,區別是let宣告的是常量。拼接字串的方法是"+",兩個不同型別的不能直接加,必須顯式型別轉化。型別轉化的方式是:型別(引數),字串可以簡寫:\(引數)。

字串還可以包含以下特殊字元:

轉義特殊字元\0(空字元),\\(反斜線),使用\ t(水平製表符),\ n(換行符),\ r(回車),\「(雙引號)和\'(單引號)

單位元組unicode標量,寫成\ xnn,其中nn是兩位十六進製制數

兩位元組unicode標量,寫成\ unnnn,其中nnnn是四個十六進製制數字

四位元組unicode標量,寫成\unnnnnnnn,其中nnnnnnnn是八進位制數字

ps:變數還可以這樣玩,你造嗎?雖然筆主覺得醬紫很不好。

輸出:

沒錯,中文,甚至unicode編碼的都可以作為變數。媽媽再也不用擔心我不會取名字了,joke。

然後,再補充乙個概念:可空與不可空。

string型別也分兩種,string?和string!,?問號表示可空,!嘆號表示非空。預設情況下是非空的。這個有助於在某些情況下處理可空變數。在後文分之結構if語句會繼續說明。

eg:話說,swift的資料型別貌似只有三種(到目前為止,我是這麼認為的,當然除開了基本資料型別而言),除了上文說到的string,還有array和dictionary。

array和dictionary的初始化空方法如下:

let emptyarray = string()

let emptydictionary = dictionary()

甚至這樣:

let emptyarray = 

let emptydictionary = [:]

使用方法如下:

array:

var numlist = [1,0, 3, 4]

numlist[1] = 2

dictionary:

var person = [

"name": "john",

"gender": "unknown",

]person["gender"] = "male"

比oc爽的一點是,大家發現沒。陣列可以直接使用數字,不用再nsnumber轉化一次了。不過經測試,array和dictionary只能裝載同一資料型別。這比較egg pain。

比如上面的例子。再加乙個age欄位,也只能是string的。然後在使用的時候再轉成整型。

2.2 swift的控制流

分支主要包括if和switch,迴圈主要包括for-in、for、while和do-while。

eg:

let array = [1, 2, 3, 4, 5]

for score in array

else

}

一般的使用方法和大多程式語言類似。只是省略了括號。

var gretting = "hello!"

if let name = optionalname

先留個懸念,後面接著寫……

swift學習筆記

1 值永遠不會被隱式轉換為其他型別。如果你需要把乙個值轉換成其他型別,請顯式轉換。let label the width is let width 94 let widthlabel label string width could not find an overload for that acc...

Swift學習筆記

常量 let product constant iphone6 變數 var product var ipad 不需要宣告變數型別,會根據右側的值推導左側變數的型別 可以多個變數定義在一起 var x1 30,x2 abc 可以精確指定變數的型別 var x1 int 27 指定x1為int型 pr...

Swift 學習筆記

函式的閉包 函式閉包的好處 利用上下文推斷引數和返回值型別 隱式返回單表示式閉包,即單表示式閉包可以省略 return 關鍵字 引數名稱縮寫 尾隨閉包語法 閉包的寫法 根據上下文推斷型別 因為排序閉包函式是作為 sorted by 方法的引數傳入的,swift 可以推斷其引數和返回值的型別。sort...