[Swift] - Method

Din의 개발노트·2020년 12월 16일
0

안녕하세요~:)))
오늘은 형식과 연관된 코드 블록을 구현하는 방법인 메소드에 대해서 알아보도록 하겠습니다.

1. Instance Method

  • 메소드는 특정 형식에 속하는 함수입니다.
  • 인스턴스를 통해 호출합니다.
  • 함수는 특정 형식에 연관되지 않는 동작을 구현하고 메소드는 특정 형식에 연관된 동작을 구현합니다.
  • 인스턴스 메소드는 클래스, 구조체, 열거형에서 구현할 수 있습니다.
func name(param) -> ReturnType {
    Code
}

instance.method(param) // 메소드는 인스턴스 이름으로 호출합니다.
class instanceMethod {
    var data = 0
    static var sharedDate = 200
    
    func doSomething() {
        print(data)
        instanceMethod.sharedDate // 형식의 이름으로 접근합니다.
    }
    
    func call() {
        doSomething()
    }
}

let i = instanceMethod()
i.data
i.doSomething()
i.call()
class Size {
    var width = 0.0
    var height = 0.0
    
    func addSize() {
        width += 1.0
        height += 1.0
    }
}

let s = Size()
s.addSize()

// 클래스에서는 인스턴스 메소드가 인스턴스 속성을 얼마든지 바꿀 수 있습니다.
// 구조체(값 형식)에서 속성을 바꾸는 메소드를 구현할 때는 반드시 mutating으로 선언해야 합니다.

struct Size {
    var width = 0.0
    var height = 0.0
    
    mutating func addSize() {
        width += 1.0
        height += 1.0
    }
}

var s = Size()
s.addSize()

2. Type Method

  • 클래스, 구조체, 열거형에서 구현이 가능합니다.
  • 타입 메소드에 접근할 때는 타입 이름으로 접근해야 합니다.
class Circle {
    static let pi = 3.14
    var radius = 0.0
    
    func Area() -> Double {
        return radius * radius * Circle.pi
    }
    
    // 타입 메소드 추가
    static func printPi() {
        print(pi)
    }
}

Circle.printPi()
profile
iOS Develpoer

0개의 댓글

관련 채용 정보