// 프로토콜에서 속성을 선언하고 형식에서 속성 요구사항을 구현해보자
// 형식에서는 가변성에따라 var와 let을 사용하는데 protocal에서는 무조건 var -> 이건 선언하는 멤버가 속성이라는 것을 표현함 {get, set 이거 두개가 가변성을 나타낸다.}
// get
protocol Figure {
var name: String { get }
}
struct Rectangle: Figure {
let name = "Rect"
}
struct Triangle: Figure {
// get만 포함되어 있다고해서 읽기전용인 let으로 해야하는 것은 아님
var name = "Triangle"
}
struct Circle: Figure {
// computed property로 표현해도 됨
var name: String {
return "Circle"
}
}
// get set
protocol Figure2 {
static var name: String { get set }
}
struct Rectangle2: Figure2 {
static var name = "Rect"
}
struct Triangle2: Figure2 {
// get만 포함되어 있다고해서 읽기전용인 let으로 해야하는 것은 아님
static var name = "Triangle"
}
struct Circle2: Figure2 {
// computed property로 표현해도 됨
static var name: String {
get {
return "Circle"
}
set {
self.name = newValue
}
}
}
class Circle3: Figure2 {
class var name: String {
get {
return "Circle3"
}
set {
self.name = newValue
}
}
}