1. 程式人生 > >swift學習:結構體

swift學習:結構體

定義:
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) 不會建立
所以 函式中午飯改變原始物件 函式中可以改變原始物件

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。
引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引數的操作,方法執行中形式引數值的改變將會影響實際引數的值。