아삭아삭 iOS 개발

[Swift 독학] 패스트캠퍼스 챌린지 11일차_함수(Functions) 선언 본문

Swift

[Swift 독학] 패스트캠퍼스 챌린지 11일차_함수(Functions) 선언

바닐라머스크 2022. 2. 3. 23:19

swift에서의 다양한 함수 선언 형태들을 정리한 내용입니다.

본 게시물은 개인 공부 기록용이므로 내용에 오류가 있을 수 있습니다.

 

 

Case1) 파라미터가 없을 경우

- 함수는 입력 파라미터 정의를 요구하지 않음
- 매개변수가 없는 경우, 소괄호 안을 비워둠

ex) 함수가 호출될 때마다 항상 같은 메세지를 반환하는 파라미터가 없는 함수 WhataGoodSong

func WhataGoodSong() -> String {
       return “2 Legit 2 Quit, MC Hammer”
}

print(WhataGoodSong())

 

Case2) 반환값이 없을 경우

- 반환값에 Void 적어준다
- 반환값을 안적어도
- 눈에 보이지는 않지만 Void 반환함, Void () 사용한 튜블이라고 있음)

ex)
func printName() -> Void {
}

 

Case3) 매개변수가 여러개 필요한 경우

- 함수의 소괄호 내에 콤마’,’ 입력하여 여러개의 파라미터를 가질 있음

ex) 파라미터 friend, me가 ‘,’ 로 구분되어 있음

func greeting(friend: String, me: String) -> String {
    print("HELLO, \(friend)! I'm \(me)")
}

 

Case4) 매개변수에 기본값이 있을 경우

- 기본값이 있는 매개변수는 뒤에 위치, 중요한 매개변수는 앞쪽에 위치

ex) me라는 매개변수에 값은 안넘겨줘도 기본값으로 설정한 “Old Town Road”가 매개변수에 들어감

func greeting(friend: String, me: String = “Old Town Road") {
   print("HELLO, \(friend)! I'm \(me)")
}

 

Case5) 전달인자 레이블을 사용하는 경우

- 문자열 안에 변수를 사용할 \(변수이름) 이렇게 입력
-
함수를 호출할 전달인자 레이블을 사용하면, 사용자 입장에서 매개변수의 역할을 좀더 명확하게 표현할 있어서 코드의 가독성이 높아짐.

ex) friend, me라는 매개변수를 실행구문에 \(friend), \(me)라고 입력하여 사용

func greeting(friend: String, me: String = "Method Man") {
    print("HELLO, \(friend)! I'm \(me)")
}

 

Case6) 와일드카드(_) 사용하는 경우

- 전달인자 레이블을 사용하고 싶지 않을 경우, ‘와일드카드(_) 식별자 사용할 있음
-
매개변수 앞에 언더바(_) 넣어주면 전달인자 레이블을 사용하지 않는 함수를 구현 가능

- 함수를 호출할 때도, 값으로만 함수 기능 가능(, 인자값 생략 가능)

ex) friend 매개변수 앞에 _를 사용하였고, 호출시 ‘friend’인자값을 생략함

func greeting(_ friend: String, me: String){
 // 함수 안에서 firstParameterName, secondParameterName
 // 인자로 입력받은 첫 번째, 두 번째 값 참조
}

greeting(“DJ Snake”, me: “Oye Cómo Va”)

 

Case7) 가변매개변수를 사용하는 경우

- 매개변수에 개의 값이 들어올 모를 , 가변매개변수(집합매개변수) 사용 가능
-
가변매개함수 데이터타입 뒤에 ‘…’ 붙여주면
-
가변매개함수는 0 이상의 값을 받아올 있음, 여러개의 문자열을 받아올 있음

- 가변매개함수로 들어온 인자값은 배열처럼 사용할 있음
-
함수마다 가변매개변수는 1개씩 갖을 있음
-
인자값으로 특정 타입의 집합 값을 사용할 있음

ex) friend 매개변수에 몇 개의 값이 들어올지 몰라서 위에 ‘…’를 붙임

func sendMessage(me: String, friends: String...) -> String {   
       return "Hello \(friends)! I'm \(me)"
}

sendMessage(me: “j park", friends: "Hardwell",  “Daddy Yankee"“Yellow Claw")

 

Case8) 옵셔널 튜플 반환형의 경우 -> ♨아직 잘 모르겠음. 추가 스터디 필요

- 함수에서 반환되는 튜플 타입이 전체 튜플에 대해 값이 없을 가능성(may or mayn't)이 있을 경우 사용
-
옵셔널 튜플 반환 타입을 사용하여 전체 튜플이 nil 있다는 사실을 반영할 있음
-
반환 값의 소괄호 다음에 물음표 기호’?’ 붙임 (String, String)?
- 전체 튜플이 옵셔널이라는 의미
-
배열을 안전하게 처리하기 위해 옵셔널 튜플 반환 타입을 사용 

ex) (name: String, count: Int)?
func someMultipleValues() -> (name: String, count: Int)? {
       if condition {
             return nil
        }
     
        return ("Simple Swift Study", 26)


if let result =  someMultipleValues() {
     let name = result.name
     let count = result.count
}

 

 

fast campus강의  참조자료

[1] https:/https://alohalimi.tistory.com/entry/SWIFT-함수

[2] https://bbiguduk.gitbook.io/swift/language-guide-1/functions

[3] https://www.simpleswiftguide.com/how-to-return-multiple-values-from-function-in-swift/

 

 

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.