iOS class 和 struct 的差異
這篇是整理一些 class 與 struck 差異文章,而且這個觀念在於面試時候也是一個特別喜歡問的問題。
而 class 與 struct 差異在哪裡,而我們會常看到所提出的點,大致是以下這三點:
- struct 不能被繼承
- struct 是 value type , class 是 reference type
- 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 它不會去改變到其他值
留言
張貼留言