Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Xcodebuild
- 코드리팩토링
- 입력 개수 제한
- commit
- 직장인인강
- 디자인 트렌드
- iOS앱개발올인원패키지Online.
- SWIFT
- 뉴모피즘
- viewDidLoad
- 8 그리드 시스템
- 패캠챌린지
- 픽셀
- 스큐어모피즘
- commit messages
- 패스트캠퍼스후기
- 패스트캠퍼스
- 아이폰
- 포인트
- ios
- Git Tutorial
- git
- viewDidAppear
- 뉴북
- coordinator pattern
- 머티리얼 디자인
- commit message
- 직장인자기계발
- git workflow
- 플랫디자인
Archives
- Today
- Total
왕논의 연구실
패스트캠퍼스 챌린지 14일차 본문
기존에 패스했던 클로저 보강 추가
11. 스위프트 Closure 실습 - 보강
형태
{ (parameter) -> return type in
statements
}
Example 1: 매우 Simple Closure
let choSimpleClosure = {
}
choSimpleClosure()
Example 2: 코드블록을 구현한 Closure
let choSimpleClosure = {
print("Hello, 클로저 하이")
}
choSimpleClosure
Example 3: 인풋 파라미터를 받는 Closure
let choSimpleClosure: (String) -> Void = { name in
print("Hello, 클로저 하이! 나의 이름은 \(name) 입니다!")
}
choSimpleClosure("코로나가 제일 싫어")
Example 4: 값을 리턴하는 Closure
let choSimpleClosure: (String) -> String = { name in
let message = "iOS 개발 만만세, \(name)님 경제적 자유를 얻으실 거예요!"
return message
}
let result = choSimpleClosure("코로나가 제일 싫어")
print(result)
Example 5: Closure를 파라미터로 받는 함수 구현
func someSimpleFunction(choSimpleClosure: () -> Void) {
print("함수에서 호출이 되었어요")
choSimpleClosure()
}
someSimpleFunction(choSimpleClosure: {
print("헬로 iOS from closure")
})
Example 6: Trailing Closure
func someSimpleFunction(message: String, choSimpleClosure: () -> Void) {
print("함수에서 호출이 되었어요. \(message)")
choSimpleClosure()
}
someSimpleFunction(message: "로나로나 땅땅", choSimpleClosure: {
print("헬로 iOS from closure")
})
// Trailing Closure: 마지막 인자가 클로저인 경우 파라미터를 생략하고 입력할 수 있다.
// 코드적으로 인자를 줄여서 가독성을 높임
someSimpleFunction(message: "트레일링 클로저") {
print("헬로 iOS from closure")
}
구조체 실습
let store1 = (x: 3, y: 5, name: "gs")// 1
// ---- 구조체 사용
// - make Location struct
struct Location {// 2
let x: Int
let y: Int
}
// - make Store struct
struct Store {// 3
let loc: Location
let name: String
let deliveryRange = 2.0
func isDeliverable(userLocation: Location) -> Bool {
let distanceToStore = distance(current: userLocation, target: loc)
return distanceToStore < deliveryRange
}
}
let store1 = Store(loc: Location(x: 3, y: 5), name: "gs")//4
- 1은 단순한 정보의 나열
- 2를 통해 Location관련 정보를 묶음
- 3을 통해 Store관련 정보를 묶음
- 코드는 더 길어졌지만, 4는 어떤 정보를 저장하고 있는지 명시적으로 보여줌. 협업이나 코드를 파악하기 쉬워짐
구조체 도전과제
- 강의 이름, 강사 이름, 학생수를 가지는 Struct 만들기 (Lecture)
- 강의 어레이이와 강사이름을 받아서 , 해당 강사의 강의 이름을 출력하는 함수 만들기
- 강의 3개 만들고 강사이름으로 강의 찾기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #iOS앱개발올인원패키지Online.
'강의 > 강의 챌린지(iOS 앱 개발 올인원 패키지 Online)' 카테고리의 다른 글
패스트캠퍼스 챌린지 16일차 (0) | 2021.11.16 |
---|---|
패스트캠퍼스 챌린지 15일차 (0) | 2021.11.15 |
패스트캠퍼스 챌린지 13일차 (0) | 2021.11.13 |
패스트캠퍼스 챌린지 12일차(수정) (0) | 2021.11.12 |
패스트캠퍼스 챌린지 11일차(수정) (0) | 2021.11.11 |