swift學習:結構體
阿新 • • 發佈:2018-12-11
定義:
Swift 結構體是構建程式碼所用的一種通用且靈活的構造體。
我們可以為結構體定義屬性(常量、變數)和新增方法,從而擴充套件結構體的功能。
與 C 和 Objective C 不同的是:
結構體不需要包含實現檔案和介面。
結構體允許我們建立一個單一檔案,且系統會自動生成面向其它程式碼的外部介面。
結構體總是通過被複制的方式在程式碼中傳遞,因此它的值是不可修改的。
下面例子可以看出
struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的結構體! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97
結構體例項是通過值傳遞而不是通過引用傳遞。
值傳遞和引用傳遞的概念:
值傳遞 | 引用傳遞 | |
---|---|---|
根本區別 | 會建立副本(copy) | 不會建立 |
所以 | 函式中午飯改變原始物件 | 函式中可以改變原始物件 |
值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。
引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引數的操作,方法執行中形式引數值的改變將會影響實際引數的值。