반응형
Swift 함수의 매개변수 이름과 전달인자 레이블
func makName(first: String, last: String) -> String {
return "hi~ my name is \(first) \(last)"
}
print (makName(first: "min", last: "younghu")) // hi~ my name is min younghu !!
함수를 호출할 때 first와 last라는 매개변수 이름(Parameter name)을 사용할 수 있다. 매개변수 이름과 더불어 전달인자 레이블(Argument Label)을 지정 해줄 수 있다. 보통 함수를 정의할 때 매개변수를 정의하면 매개변수 이름과 전달 인자 레이블을 같은 이름으로 사용할 수 있지만 전달인자 레이블을 별도로 지정하면 함수 외부에서 매개변수의 역할을 좀 더 명확히 활 수 있는 장점이 있다.
전달인자 레이블을 사용하려면 함수 정의에서 매개변수 이름 앞에 한 칸을 띄운 후 전달인자 레이블을 지정한다.
매개변수 이름과 전달인자 레이블을 지정할 때 표현 방식
func 함수 이름 (전달인자 레이블 매개변수 이름: 매개변수 타입, 전달인자 레이블 매개변수 이름: 매개변수 타입 ...) -> 반환 타입 {
실행 구문
return 반환 값
}
실제 함수를 구현하면
func makeMyName(first mySex: String, last name: String) -> String {
return "hello ~ \(mySex) \(name) !!"
}
print(makeMyName(first: "min", last: "younghu"))
함수 내부에서 전달 인자 레이블을 사용할 수 없고 호출할 때는 매개변수 이름을 사용할 수 없다. 전달 인자 레이블을 사용하고 싶지 않다면 와일드카드 식별자를 사용하면 된다. 전달인자 레이블을 변경하면 함수의 이름 자체가 변경 되기 때문에 전달인자 레이블만 다르게 써더라도 함수의 중복정의(오버로드)로 동작할 수 있다.
func makeMyName(_ sex: String, _ name: String) -> String {
for _ in 0..<5 {
//이렇게 for문에서도 와일드카드 식별자를 사용할 수 있다.
}
return "my name is \(sex) \(name) "
}
* 전달인자 레이블을 사용하는 경우 매개변수 이름은 함수의 이름에 포함되지 않으므로 매개변수 이름과 타입이 같은 함수를 매개변수 이름만 바꿔서 중복 정의할 수 없다.
반응형
'프로그래밍 > Spring' 카테고리의 다른 글
14. Swift의 다양한 함수들 (0) | 2019.02.21 |
---|---|
13. Swift함수의 반환 타입 (0) | 2019.02.20 |
11. Switch문의 골격 (0) | 2019.02.18 |
10. Swift 열거형(enum) (0) | 2019.02.17 |
9. Swift의 배열(Array)과 딕셔너리(Dictionary) 그리고 세트(Set) (0) | 2019.02.16 |