메서드

  • 메서드란? 클래스, 구조체, 열거형 등 특정 객체 내부에서 사용되는 함수이다.
  • 메서드도 프로퍼티와 마찬가지로 인스턴스 메서드와 타입 메소드로 나뉜다.
  • 구조체나 열거형에서는 메서드 앞에 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() //타입 메서드