大器晩成

함수의 오버로딩 본문

iOS/Swift 문법

함수의 오버로딩

zerobugpark 2024. 11. 8. 11:15

 

오버로드(Overload):  과적하다.

 

같은 이름의 함수에 매개변수(파라미터)를 다르게 선언하여, 하나의 함수 이름에 실제 여러 개의 함수를 대응시키는 것입니다.
-> 함수 이름의 재사용

 

*스위프트는 오버로딩을 지원하는 언어이며, 함수이름, 파라미터 수/자료형, 아규먼트 레이블, 리턴형을 모두 포함해서 함수를 식별합니다.

 

오버로딩 예시

func sumTest(num1: Int, num2: Int) -> Int{
    var result = num1 * num2
    return result
}
func sumTest(_ num1: Int,_ num2: Int) -> Int{
    var result = num1 - num2
    return result
}

print(sumTest(num1: 1, num2: 2))
print(sumTest(1, 2))
  • 함수명은 sumTest로 동일하지만, 하나는 아규먼트레이블이 있고, 다른 함수는 없습니다.

 

타입에 따른 함수 오버로딩

func typePrint(value: Int) {
    print(value)
}

func typePrint(value: Double) {
    print(value)
}

func typePrint(value: String) {
    print(value)
}

func typePrint(_ value: String) {
    print(value)
}

func typePrint(value1: String, value2: Int) {
    print(value1, value2)
}


typePrint(value: 5)

typePrint(value: 3.4)

typePrint(value: 3)

 

오버로딩을 지원하지 않는 언어의 단점

  • 같은 기능을 제공하는 함수를 파라미터 형식마다 이름을 다르게 구현해야 하기 때문에 함수의 이름이 많아지고, 구별해서 사용하는 것이 어렵습니다. 

 

728x90

'iOS > Swift 문법' 카테고리의 다른 글

inout 파라미터  (0) 2024.11.08
Swift 제어전송문  (0) 2024.11.08
함수의 표기법(시그니처 표기법)  (0) 2024.11.08
함수의 주의점  (3) 2024.11.08
함수의 활용  (0) 2024.11.07