왕논의 연구실

패스트캠퍼스 챌린지 14일차 본문

강의/강의 챌린지(iOS 앱 개발 올인원 패키지 Online)

패스트캠퍼스 챌린지 14일차

ywangnon 2021. 11. 14. 22:42

기존에 패스했던 클로저 보강 추가

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")
 }

 

실습사진 1

구조체 실습

 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는 어떤 정보를 저장하고 있는지 명시적으로 보여줌. 협업이나 코드를 파악하기 쉬워짐

실습사진 2

 

구조체 도전과제

  1. 강의 이름, 강사 이름, 학생수를 가지는 Struct 만들기 (Lecture)
  2. 강의 어레이이와 강사이름을 받아서 , 해당 강사의 강의 이름을 출력하는 함수 만들기
  3. 강의 3개 만들고 강사이름으로 강의 찾기

 

실습사진 3

 

 

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

 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #iOS앱개발올인원패키지Online.