함수의 종류를 크게 3가지로 나눌 수 있다.
각각 코드로 나타내면 다음과 같다.
class TestingFunc {
func defaultFunc() { print(#function) }
static func staticFunc() { print(#function) }
class func classFunc() { print(#function) }
}
instance function은 흔히 많이 쓰는 function인데, 인스턴스 메서드, 프로퍼티 처럼 인스턴스를 생성해야만 함수에 접근 할 수 있다.
static, class function은 스태틱 메서드, 프로퍼티 처럼 인스턴스를 생성하지 않고 접근 할 수 있다. (자동완성에 defaultFunc이 잡히는건, 인스턴스를 넣어줘야 실행됨으로 제외)
static이랑 class랑 똑같이 인스턴스를 만들지 않고 접근할 수 있다는건 알겠는데, 대체 무엇이 다르냐면
상속을 받았을때, 재정의를 할 수 있는가 없느냐의 차이를 갖고 있다.