전달인자 레이블

함수를 호출할 때 전달인자 레이블 사용 시 사용자 입장에서 매개변수의 역할을 좀 더 명확하게 설명할 수 있다

코드의 가독성이 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"

 

+ Recent posts