Function - 2
묵시적 return
- 함수의 body 전체가 하나의 표현식으로 되어 있는 경우 그 표현식은 묵시적으로 return값이 된다.
- 따라서 하나의 return문만 있는 함수의 경우 return을 생략할 수 있다.
- 하지만 함수 내이 문장은 반드시 리턴 가능한 값을 가지고 있어야 한다. 예를 들어 fatalError(…), print(…) 등의 함수 사용시 작동하지 않는다.
func greeting(for person: String) -> String {
"Hello, " + person + "!"
}
print(greeting(for: "Dave"))
// 출력 : Hello, Dave!
func anotherGreeting(for person: String) -> String {
return "Hello, " + person + "!"
}
print(anotherGreeting(for: "Dave"))
// 출력 : Hello, Dave!
argument label과 parameter name
- 함수의 매개변수는 argument label과 parameter name를 가질 수 있다.
- argument label은 함수를 호출할 때 인수 앞에 사용되며 parameter name는 함수 구현시 사용된다.
- 기본적으로 매개변수는 parameter name를 argument label처럼 사용한다.
- 모든 매개변수는 유일한 이름을 가져야 한다.
- 여러 매개변수가 동일한 argument label을 가질 수는 있지만 가독성이 떨어지게 된다.
- argument label은 parameter name 앞에 쓰며 공백으로 구분한다.
- argument label의 사용은 함수 구현의 높은 가독성과 분명한 의도 표현에 더해 일상적인 문장 표현력과 같은 방법으로 함수를 호출할 수 있게 해준다.
func someFunction(firtstParameterName: int, secondParameterName: int) {
...
}
someFunction(firtstParameterName: 1, secondParameterName 2)
func someFunction2(argumentLabel parameterName: int) {
...
}
someFunction2(argumentLabel: 1)
func greet(person: String, from hometown: String) -> String {
return "Hello, \(person)! Glad you could visit from \(hometown)."
}
greet(person: "Bill", from: "Cupertino")