Notice
Recent Posts
Recent Comments
Link
大器晩成
함수의 오버로딩 본문
오버로드(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 |