일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 패캠챌린지
- beginAsyncWrite
- 패스트캠퍼스후기
- switch
- 독학
- Realm
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- Git
- Threading
- 열거형
- xcode
- cancelAsyncWrite
- RawValue
- 옵셔널 체이닝
- TableView
- ios
- 함수
- Optional Chaining
- enum
- 직장인자기계발
- 프로퍼티 관찰자
- Background
- 인스펙터
- SeSAC
- userDefaults
- swift
- 문자열 보간법
- 패스트캠퍼스
- 기본문법
- 직장인인강
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 11일차_함수(Functions) 선언 본문
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/
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 13일차_조건문 (0) | 2022.02.05 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 12일차_함수(Functions)는 일급객체 (0) | 2022.02.04 |
[Swift 독학] 패스트캠퍼스 챌린지 10일차_함수(Functions) 정의와 특징 (0) | 2022.02.02 |
[Swift 독학] 패스트캠퍼스 챌린지 9일차_컬렉션 타입 (0) | 2022.02.01 |
[Swift 독학] 패스트캠퍼스 챌린지 8일차_데이터 타입 (0) | 2022.01.31 |