인스턴스를 생성해야 호출 할 수 있는 메소드
인스턴스 자기자신을 가르킴
struct Point{
var x=0.0, y=0.0
mutating func moveByX(x deltaX:Double, y deltaY:Double){
self.x += deltaX
self.y += deltaY
}
}
var point = Point(x: 10.5,y:12.0)
point.moveByX(x: 3.0, y: 4.5)
class Location{
var x = 0.0
var y = 0.0
func moveByX(x deltaX:Double, y deltaY:Double){
self.x += deltaX
self.y += deltaY
}
}
var loc = Location()
loc.x = 10.5
loc.y = 12.0
loc.moveByX(x: 3.0, y: 4.5)
구조체는 mutating 키워드를 사용해야 프로퍼티 수정가능함
인스턴스를 생성하지 않고 호출 가능한 메소드
class Foo{
//타입 메소드 선언
class func fooTypeMethod(){}
}
Foo.fooTypeMethod()
타입 메소드를 사용할 경우 만들어진 인스턴스들이 참조하고 있는 값들이 변경됨을 주의하자
타입 메소드는 인스턴스 프로퍼티를 참조할 수없음 ⇒ 인스턴스 생성 전에 호출되기 때문에 당연함