2015-08-15 110 views
0

//協議高級Swift2 - 在結構實現的類Vs的實施協議協議

Protocol Movable { 
    mutating func moveTo(p : CGPoint) 
} 

雖然在這裏類實現一個協議是語法

Class Car : Movable { 
func moveTo(p : CGPoint) {...} 
} 
Struct Shape : Movable { 
mutating func moveTo(p : CGPoint) {...} 
} 

現在爲什麼要插入「在結構中變異「,它在底下做什麼。

回答

1

由於結構默認情況下被假定爲不可變的,而類實例被假定爲可變的。因此,您不需要標記修改類實例的函數,但必須標記修改結構的方法。假設你寫了let myShape = Shape()。編譯器需要知道它不能讓你撥打myShape.moveTo(...)