Function Types

每個function都有自己的function type,由參數跟回傳型態所組成:

func addTwoInts(a: Int, _ b: Int) -> Int {

    return a + b

}

Eason 發表在 痞客邦 留言(1) 人氣()

Constant and Variable Parameters

Function裡的參數預設都是常數,因此若是在function裡想要改變傳入的參數時會出現compile error。不過有時候我們還是會有需要修改的時候。我們可以在裡面新增一個變數並將參數傳入以便於修改,但若今天有很多參數時這個方法就不是那麼好用。Swift提供了設定變數參數的方式讓程式碼更精簡。方法就是在定義參數時前面加入var:

func sayHi(var name: String) -> String{

    name = "Hello " + name

    return name

Eason 發表在 痞客邦 留言(0) 人氣()

Default Parameter Values

當我們定義function 的參數時,我們可以給他初始值:

func someFunc(parameterWithDefault: Int = 12) {

}

someFunc(6) // parameterWithDefault is 6

Eason 發表在 痞客邦 留言(0) 人氣()

Function是用來處理特別任務的一垞程式碼。我們會幫function取一個名字來表明他要做什麼事,並且呼叫他去執行我們需要做的事情。 Function可以依需求來決定是否代入參數;每個function都有一個型態,並可回傳本身的型態給呼叫他的程式碼。

Defining and Calling Functions

當我們定義一個function時,可以定義一個或多個輸入的參數名稱,以及輸出的型態名(可有可無)。

當我們給function參數時,參數的型態跟順序要跟當時定義好的function 一樣。

我們先試著定義一個function叫 sayHi(_:),我們會輸入使用者名字(String type)以及輸出一組打招呼的字串(String type):

Eason 發表在 痞客邦 留言(0) 人氣()

Control Transfer Statements

Control transfer可以在程式執行的時候改變順序。Swift提供了四種語法:

1. continue

2. break

3. fallthrough

Eason 發表在 痞客邦 留言(0) 人氣()

Conditional Statements

我們會很常去判斷程式裡的一些條件是否成立,例如錯誤是否發生,或是因為數值高低而產生一些提醒訊息。Swift提供了兩種用在條件判斷的語法:if以及switch。

If

我們可以直接來看例子:

var tempeatureInFahrenheit = 30

Eason 發表在 痞客邦 留言(0) 人氣()

Swift提供了一些跟C類似的控制流程,包含for, while, if, guard, 還有switch。

除了這些基本的,Swift還提供了for-in迴圈讓我們能夠更簡單的從array, dictionary, ranges, strings來取值。

For loops

Swift提供兩種迴圈, for-in loop 及for loop。

for-in可以簡單的取出範圍內的值出來,如:

Eason 發表在 痞客邦 留言(0) 人氣()

Dictionaries

一個字典型態的常數/變數可以儲存由相同型態的keys跟相同型態的values所組成的關聯的集合,並且是沒有順序的。每一個值都會關聯到一個特定的key;就像真實世界的字典一樣,一個字所查詢到的只會是那個字所擁有的解釋。

有一點要注意的是,我們要拿來當作key的類別,一定都要有hash value,就跟Set要存進去的值一樣,才能在dictionary裡是唯一的。

在Swift裡,字典的宣告全名是:

Dictionary<key, value>

Eason 發表在 痞客邦 留言(0) 人氣()

Sets

Set不知該怎麼翻譯@@。比如說麥當勞(要倒了)裡面的套餐,裡面就固定有一個漢堡,一份薯條,以及一杯飲料,這就叫做一個"Set"。

Set存放的是同型態但獨特的值,並且沒有順序性。若我們存取值的順序是不重要的,或是能保證裡面的值不會重覆,我們就可以用Set來代替Array。

Hash Values for Set Types

任何一個要放在Set裡的型態都必需是可以隨意放置的;也就是說,這個型態必需提供方法去計算自己的Hash Value(雜湊值)。Hash value的型態為Int,若是兩個物件比較的時候是相等的,也就是指他們的hash value是相等的,如:

Eason 發表在 痞客邦 留言(0) 人氣()

Swift 提供三個主要的集合型態,arrays, sets, and dictionaries。Array是有順序的收集值。Sets是無順序的收集特別的值。Dictionaries是收集無順序的key-value 關聯值。

這三個型態的值不能互相存取,亦即我們可以很放心的從其中一種型態拿同類型的值出來,如dictionary裡面一定是一組一組的key-value關聯。

跟字串一樣,若我們需要一個可變動的集合,用變數宣告即可;反之則用常數宣告。

Array

陣列是有存放相同型態的一個有順序的列表。我們可以在一個陣列裡隨時存取相同型態的值。

Eason 發表在 痞客邦 留言(0) 人氣()

String Indexes

每一個字串的值都會關聯到一個索引值,型態是String.Index,可以用來表示字串裡每個字元所代表的位置。

在Swift--Strings and Characters(2)最後有提到,一個字元有可能是由數個Unicode scalar所組合而成,因此字串索引值就不能是一般的整數,需使用內建的方法來處理。

我們可以用字串屬性startIndex來取得字串的第一個字元。屬性endIndex則是回傳最後"past-the-end"(最末端)的字元位置;如果字串是空的,startIndex和endIndex就會是一樣的。

比如說:

Eason 發表在 痞客邦 留言(0) 人氣()

Unicode 是一個國際標準的編碼格式,可以表示大多數種類的文字及語言。Swift的 String及Character型態是完全支援Unicode編碼格式的。Swift的String型態是由Unicode scalar所編碼出來的值。 所謂的Uincode scalar 是由一組21-bit的數字代表唯一的字元或是一個語句,像是U+0061代表"LATIN SMALL LETTER A",就是"a"嚕;又或是U+1F425代表"FRONT-FACING BABY CHICK", 印出來就是"

Eason 發表在 痞客邦 留言(0) 人氣()

1 2 3
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。