본문 바로가기

iOS/Swift74

Swift) Switch vs If else 🍎 switch란? switch는 들어오는 수(value to consider)를 보고 조건이 True인 case로 진입(점프)한다. 다른 언어같은 경우엔 각 case마다 break를 걸어 탈출하지 않는다면, 이후의 case까지 진입하지만, Swift에서의 switch는 fallthrough를 기본적으로 지원하지 않으므로, case마다 break를 걸어줄 필요가 없다. switch statements in Swift don’t fall through the bottom of each case and into the next one by default https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID130 대신 fallthrough 되.. 2022. 2. 12.
Swift) Error Handling 📌 Error Handling Swift는 Error protocol을 통해 Error handling을 지원한다. 😈 Ways to handle Errors 스위프트의 에러처리 방법은 네가지가 있다. Error 발생 함수에서 해당 함수를 호출한 코드로 전파(던짐) (thorws) do-catch문으로 처리 Error를 옵셔널값으로 처리 Error가 일어나지 않을 것이라고 단정 👿 Error Represent Swift에서, Error는 Error protocol을 준수하는 타입의 값으로 표현한다. 👹 Error Protocol은 빈 프로토콜이다. Any type that declares conformance to the Error protocol can be used to represent an err.. 2022. 2. 12.
함수 전달인자명과 파라미터명 함수 기본 형태 func 함수이름(전달인자명 파라미터명: 파라미터타입) -> 반환타입 { statement } 함수이름(전달인자명: 파라미터값) 사용 함수 내부에서 전달인자를 사용할때는 파라미터명을 사용한다. func greeting(to friend: String) { print("Hello \(friend)") } 함수를 호출할 때에는 전달인자명을 사용한다. greeting(to: "Jiseong") 이유 함수를 호출할 때 함수 사용자의 입장에서 파라미터의 역할을 명확히 표현하고자 할 때 전달인자명을 지정하여 사용한다. 위 코드를 예로 들면 전달인자명 to를 사용하여 greeting을 누구한테(to) 하는지 함수명과 전달인자명이 어우러져 일맥상통하게 표현하려 사용하는 것이다. 헷갈렸던 점 argume.. 2022. 2. 12.
Swift) Optional Binding 📌 Optional Binding 변수에 값이 저장될지 아닐지를 확실할 수 없을 떄 Optional을 사용한다. Optional Binding은 Optional 타입의 변수값을 꺼내오는 방법중 하나이다. 🐶 guard guard를 사용한 옵셔널 바인딩을 알아보기전 guard부터 알아보겠다. guard 뒤에 따라붙는 코드의 실행 결과가 True일 때 guard문 밑의 코드가 실행된다. False라면 else블록 내부 코드만 실행된다. 이 내부 코드에는 자신보다 상위의 코드블록을 종료하는 코드가 반드시 들어가야한다. Ex) return, break, continue, throw 🐱 guard let guard let은 예외사항을 처리할 때 주로 쓰인다. 옵셔널을 벗겼을 때 값이 nil이면 더이상 코드를 실행.. 2022. 2. 10.
[Swift] Closure 클로저(Closure).. Swift 사용에 있어서 빠질 수 없는 것이다. 클로저란? 클로저(Closure)는 코드블럭으로 C와 Objective-C의 블럭(block)과 다른 언어의 람다(lambda)와 비슷하다. 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호“{}”로 구분된 코드의 블럭이며, 일급 객체의 역할을 지닌다. 일급 객체는 전달 인자로 보낼 수 있고, 변수/상수 등으로 저장하거나 전달할 수 있으며, 함수의 반환 값이 될 수도 있다. 클로저는 어떤 상수나 변수의 참조를 캡쳐(capture)해 저장할 수있다. Swift에서 클로저 표현은 최적화 되어서 간결하고 명확하다. 이 최적화에는 다음과 같은 내용을 포함한다. 문맥(context)에서 인자 타입(parameter type.. 2021. 9. 24.
[Swift] Functions 함수 (Functions) 정의와 호출 (Defining and Calling Functions) 정의 (Define) func greet(person: String) -> String { let greeting = "Hello, " + person + "!" return greeting } // 문자열 직접 반환 가능 func greet(person: String) -> String { return "Hello, " + person + "!" } 함수를 선언할 땐 맨 앞에 func 키워드를 붙이고 선언함수 이름을 정한 뒤, (person: String) 파라미터와 타입, 그리고 -> String 반환 타입을 정의한다. 호출 (Call) print(greet(person: "Anna")) // "Hell.. 2021. 9. 23.