func 함수(⭐️아규먼트레이블 ⭐️파라미터네임: 파라미터타입) -> 아웃풋타입{
// 함수 내부에서 parameterName을 사용
}
함수에서 파라미터 이름앞에 for parameter나 with parameter형식으로 들어오는 것들이 있는데 이 것이 의미하는 바가 무엇인가?
Argument Label과 Parameter Name 함수 또는 메서드에서 파라미터를 정의하고 사용할 때에 함수의 가독성과 사용성을 높인다.
Parameter Name, Argument Label을 동일하게 사용할 수도 있고 아규먼트는 생략할 수 있다.
func 함수(이름: String, 고향: String) {
print("\(이름)은 \(고향)에서 왔습니다")
}
함수(이름: "철수", 고향: "경기도")
func 함수(_ 이름: String, from 고향: String) {
print("\(이름)은 \(고향)에서 왔습니다")
}
함수("철수", 고향: "경기도")
// '이름'의 argument label이 _ 로 생략되었으며 따라서
// 함수 호출 시 첫번째 파라미터는 레이블 없이 값만 전달.
func compareNumbers(_ a: Int, _ b: Int, ⭐️using operator: String) -> Bool {
switch `operator` {
case "==":
return a == b
case "!=":
return a != b
case "<":
return a < b
case "<=":
return a <= b
case ">":
return a > b
case ">=":
return a >= b
default:
return false
}
}
// 사용 예시
let result = compareNumbers(5, 3, using: ">")
print(result) // true
using 부분은 argument label로서 파라미터의 의미를 명확히 하기 위해 사용할 수 있다.
각 키워드에 개별적 기능이 있다기 보다 함수의 문맥(context)과 관련한 것인데 개발자 컨벤션처럼 파라미터 레이블을 팀내에서의 규칙을 설정해서 쓸 수 있다.