位置:首頁 > 高級語言 > Swift教學 > Swift類和結構體的選擇

Swift類和結構體的選擇

類和結構體的選擇

在你的代碼中,你可以使用類和結構體來定義你的自定義數據類型。

然而,結構體實例總是通過值傳遞,類實例總是通過引用傳遞。這意味兩者適用不同的任務。當你的在考慮一個工程項目的數據構造和功能的時候,你需要決定每個數據構造是定義成類還是結構體。

按照通用的準則,當符合一條或多條以下條件時,請考慮構建結構體:

  • 結構體的主要目的是用來封裝少量相關簡單數據值。
  • 有理由預計一個結構體實例在賦值或傳遞時,封裝的數據將會被拷貝而不是被引用。
  • 任何在結構體中儲存的值類型屬性,也將會被拷貝,而不是被引用。
  • 結構體不需要去繼承另一個已存在類型的屬性或者行為。

合適的結構體候選者包括:

  • 幾何形狀的大小,封裝一個width屬性和height屬性,兩者均為Double類型。
  • 一定範圍內的路徑,封裝一個start屬性和length屬性,兩者均為Int類型。
  • 三維坐標係內一點,封裝xyz屬性,三者均為Double類型。

在所有其它案例中,定義一個類,生成一個它的實例,並通過引用來管理和傳遞。實際中,這意味著絕大部分的自定義數據構造都應該是類,而非結構體。