궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFT/Grammar

Swift : 기초문법 [ 고급편 - 함수 ]

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

함수 기본편을 보시지 않은 분들 께서는 여기를 클릭해주세요.

 

이번 게시글에서는 함수의 다양한 모습에 대해서 알아보도록 하겠습니다.

 

매개변수 기본값 

매개변수 기본값은 함수의 매개변수에 값이 들어오지 않아도 자동적으로 매개변수를 가지게 되는 것입니다.

 

매개변수 기본값 선언을 해주기 위해서는 매개변수 이름 뒤에 타입을 써주고 매개변수 기본값을 할당해주면 됩니다.

매개변수 기본값은 매개변수 목록중에 맨 뒤에 위치하는것이 좋습니다.

                	        //매개변수 이름 뒤에 타입을 써주고 매개변수 기본값을 할당
func 함수이름 (매개변수1이름: 매개변수1타입, 매개변수2이름: 매겨변수2타입 = 매개변수 기본값 ....) -> 반환타입 {
   //함수 구현부
  return 반환값

예를 한번 들어보겠습니다. 아래와 같이 'me'의 매개변수 기본값을 "서근" 이라고 정해줬습니다. 

//me: String 이라는 '매개변수 타입' 뒤에 = '매개변수 기본값'을 준상태
func greeting(friend: String, me: String = "서근") {
   print("안녕 \(friend)! 나는 \(me)이야")
}

이제 함수를 호출해 보겠습니다. 우리는 매개변수 기본값을 정해줬기 때문에 호출시 me를 따로 작성해주지 않아도 자동으로 호출이 되는것을 확인 할 수 있습니다. 기본값이 있는 이름을 변경해주고 싶다면  me라는 매개변수를 명시 후, 값을 넘겨주면 됩니다.

//매개변수 기본값을 가지는 매개변수는 생략할 수 있습니다.
greeting(friend: "키키")  // 안녕 키키! 나는 서근이야
gretting(friend: "포뇨", me: "하울") // 안녕 포뇨! 나는 하울이야

전달인자 레이블

함수를 호출할 때 매개변수 역할을 좀 더 명확하게 하거나 함수 사용자로서 매개변수가 어떤 역할을 할 것인지를 명확하게 표현하고자 할 때 많이 사용합니다.

 //매개변수 앞에 '전달인자 레이블'을 추가해준다.
func 함수이름 (전달인자 레이블 매개변수1이름: 매개변수1타입, 전달인자 레이블매개변수2이름: 매겨변수2타입 ...) -> 반환타입 {
   //함수 구현부
  return 반환값

함수 내부에서 전달인자를 사용할 때에는 매개변수 이름을 사용합니다. 전달인자 레이블을 사용하면 함수의 중복정의도 손쉽게 할 수 있습니다. 

 

그런데 위에 이미 greeting이라는 함수를 사용했는데 또 사용 할 수 있다구요?? 네, 사용 할 수 있습니다.

 

전달인자 레이블을 사용하면 greeting이라는 같은 함수의 이름을 사용하는것 처럼 보이지만, 실제로 Swift에는 함수의 이름이 greeting, to, from 까지 전부 함수의 이름으로 취급되기 때문에 위에 함수와 다른 함수취급됩니다.

            //전달자 레이블인 'to' 와 'from'을 넣어줬다.
func greeting(to friend: String, from me: String) {
   print("안녕 \(friend)! 나는 \(me)이야")
}
greeting(to: "하울", from: "서근") // 안녕 하울! 나는 서근이야

 

읽어주셔서 감사합니다 🤟

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.