iOS class 和 struct 的差異

這篇是整理一些 class 與  struck 差異文章,而且這個觀念在於面試時候也是一個特別喜歡問的問題。

而  class  與 struct 差異在哪裡,而我們會常看到所提出的點,大致是以下這三點:
  1.  struct 不能被繼承
  2.  struct 是 value type , class 是 reference type
  3.  struct 有 memberwise initializer 
 從下面一個例子來看


class A {
    var number = 1
}

var a = A()
var b = a
b.number = 2

這時候  a.number 和 b.number 
都會是 2

當 var b = a 的這個時候是也將 a.number  也改變了

struct AA{
    var number = 1
}
var aa = AA()
var bb = aa
bb.number = 2

這個時候 aa.number 和 bb.number
個會是 1 和 2

而會有這個差異原因是, struct 是 value type 它不會去改變到其他值

留言

這個網誌中的熱門文章

IOS_Objective-C學習筆記_(陣列 / 可修改陣列 ;字典 / 可修改字典)..

20170122 Radiobutton功能練習 (溫度轉換)

iOS_開發 拿到 Tableview Cell 上的按鈕是哪一個 (Tableview Cell Button)