본문 바로가기
프로그래밍/Spring

12. Swift 함수의 매개변수 이름과 전달인자 레이블

by Mr-후 2019. 2. 19.
반응형

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) "

}

* 전달인자 레이블을 사용하는 경우 매개변수 이름은 함수의 이름에 포함되지 않으므로 매개변수 이름과 타입이 같은 함수를 매개변수 이름만 바꿔서 중복 정의할 수 없다. 

반응형