전달인자 레이블
함수를 호출할 때 전달인자 레이블 사용 시 사용자 입장에서 매개변수의 역할을 좀 더 명확하게 설명할 수 있다
코드의 가독성이 up!
func sendMessage(from myName: String, to name: String)->
String {
return "Hello \(name)! I'm \(myName)"
}
sendMessage(from: "Gunter", to: "Json") //출력: "Hello Json! I'm Gunter"
[참고한 타 블로그]
전달인자는 어떤 이름으로 함수에 값을 보내줄 것인지!
함수를 호출할 때 넘겨주는 변수의 이름이라 생각하자.
매개변수는 어떤 이름으로 함수 내부에서 사용할 것인지를 명시하기 위한 것!
함수를 정의할 때, 그 함수 내부에서 쓰는 변수의 이름이라 생각하자.
전달인자 레이블은 함수 정의부에 매개변수와 함께 사용하는 것이고, 생략이 가능합니다.
오버로딩도 가능하고, 코드의 작성 편의성과 가독성을 위해 사용하는 것 같기도 하다. 오버로딩으로 잘 활용하는 방법도 있을 것 같다!
또한 와일드 카드 패턴(_)으로 생략하는 것도 가능!
전달인자 레이블을 사용하면 함수 밖에서 함수 안으로 어떤 값을 가져왔는지, 이 값을 어떤 이름을 붙여 매개변수로 사용할 것인지를
명시할 수 있습니다. 이 경우 해당 값이 어떤 기능을 하는지를 살려서 매개변수 이름을 붙여주는 것이 좋겠죠?
또한 앞서 설명한대로 전달인자의 이름에 따라 함수 오버로딩을 할 수 있기도 합니다.
몇 블로그에서 아규먼트 레이블을 파라미터 레이블로 잘못 부르는 경우를 보기도 했고
그런 글들을 접하다보니 개념이 헷갈려서 본 주제의 글을 쓰게 되었습니다.
아규먼트와 파라미터를 정확하게 이해한다면 혼동하지 않을 것 같아요.
결론,
파라미터 == 인자 == 매개변수
아규먼트 == 인수 == 전달인자
함수 함수 정의부분에서 매개변수 이름 앞에 쓰이는 것은 아규먼트 레이블!
아규먼트 레이블은 사용하지 않아도 되고 와일드 카드 패턴으로도 생략할 수 있다.
출처: https://yeniful.tistory.com/41
와일드 카드 식별자
와일드 카드 식별자(_)
매개변수의 이름을 따로따로 안적어주고 값만 넘겨줘도 호출이 가능하다.
func sendMessage(_ name: String) -> String {
return "Hello \(name)"
}
sendMessage("김철수")
가변 매개변수
가변 매개변수(...)
0개 이상의 값을 받아올 수 있으며 함수마다 하나만 가질 수 있고 몇 개가 들어올지 모를 때 사용한다!
가변 매개변수를 사용하면 배열처럼 여러 개를 받아올 수 있음
func sneMessage(me: String, friends: String...) -> String{
return "Hello \(friends)! I'm \(me)"
}
sendMessage(me: "Gunter", friends: "Json", "Albert", "Stella")
//출력: "Hello["Json", "Albert", "Stella"]! I'm Gunter"
'Swift 부수기' 카테고리의 다른 글
[Swift 부수기] Hugging priority와 Compression Resistance priority (0) | 2022.02.06 |
---|---|
[Swift 부수기] 클래스와 구조체의 차이 (0) | 2022.02.05 |
[Swift 부수기] 옵셔널(optional) (0) | 2022.02.03 |
[Swift 부수기] 컬렉션 타입 (0) | 2022.02.03 |
[Swift 부수기] 기본 데이터 타입 (0) | 2022.02.03 |