[swift] 08. 메소드
인스턴스 메소드(Instance method) 내에서 value 타입 property 변경
mutating keyword 를 붙여준다.
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
var somePoint = Point(x: 1.0, y: 1.0)
somePoint.moveBy(x: 2.0, y: 3.0)
print("The point is now at (\(somePoint.x), \(somePoint.y))")
// "The point is now at (3.0, 4.0)" 출력
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
self = Point(x: x + deltaX, y: y + deltaY)
}
}
타입 메소드 (Type method)
생성없이 접근 가능한 method. static, class keyword를 사용
- static : 서브 class에서 overriding 할 수 없다.
- class : 서브 class에서 overriding 할 수 있다.
class SomeClass {
class func someTypeMethod() {
// 타입 매소드 구현
}
}
SomeClass.someTypeMethod() // 타입 매소드 호출!