메서드
메서드란? 클래스, 구조체, 열거형 등 특정 객체 내부에서 사용되는 함수이다. 메서드도 프로퍼티와 마찬가지로 인스턴스 메서드와 타입 메소드로 나뉜다. 구조체나 열거형에서는 메서드 앞에 mutating 키워드를 추가해야만 프로퍼티의 값을 직접 변경할 수 있다. (클래스는 mutating 없이 가능)
class Counter {
var count: Int = 0
func addCount(time: Int) {
self.count += time
}
}
var test: Counter = Counter() //인스턴스 생성
test.addCount(time: 10) //인스턴스 메서드 호출
test.count //10
struct Time {
var time: Int = 0
mutating func addTime(num: Int) {
self.time += num
}
}
var test2: Time = Time() //인스턴스 생성
test2.addTime(num: 10) //인스턴스 메서드 호출
test2.time //10
타입 프로퍼티와 마찬가지로 타입 메서드는 static 키워드를 통해 사용한다.
class Test {
var apple: Int = 2
class func test() {
print("타입 메서드")
}
}
Test.test() //타입 메서드
struct Test2 {
var banana: Int = 3
static func test() {
print("타입 메서드")
}
}
Test2.test() //타입 메서드