본문 바로가기

Swift Deeep Dive7

[Swift] 옵셔널 체이닝 & Guard 스위프트로 작성된 코드를 보면 30줄도 안되서 ?나 !를 무조건 만날 것이다. 이건 옵셔널에 관한 이야기를 해야한다. 스위프트는 모든 형태가 2가지다. 원래의 이름과 원래의 이름+? 이렇게 두가지다. 예를 들면 String과 String? 이렇게 2가지 형태가 있는 것이다. 이 둘의 차이점은 String?은 nil값을 포함하는 형태이고 String은 nil값을 포함하지 않는 형태이다. 스위프트는 이 두가지의 형태에 매우 엄격하므로 프로그래밍을 할 때 잘 신경써야한다.(두가지 형태는 아예 다른 것으로 봐야한다!) 1. 옵셔널 체이닝 그렇다면 옵셔널 체이닝은 무엇일까? 옵셔널 체이닝은 nil일수도 있는 값을 호출할 때 사용하는 기법이다. 다음의 코드를 먼저 보자. 중요하게 볼 부분은 밑의 두줄이다. hyog.. 2020. 8. 23.
[Swift]오류처리(2) 저번시간에 이어 오늘도 마저 오류를 처리하는 방법들에 대해서 알아보려고 한다. 오늘은 크게 3가지를 볼 것이다. 첫번째로는 오류가 절대로 나지 않을 것을 확신할 때 오류를 어떻게 처리할 것인지와 두번째로는 오류를 던지는 함수를 매개변수로 받아 다시 또 오류를 던지는 함수 그리고 마지막으로는 후처리 defer에 대해서 알아보자. 1) 오류가 절대 나지않을 것을 확신할 때 오류가 나지 않는 다면 오류 던지는 함수를 try!로 받아주면 아주 간단하게 끝난다. 위의 코드를 보면 somThrowingFunction은 매개변수로 false를 받으면 절대 오류가 나지 않는다. 그러면 오류가 생기지 않음으로 별도로 do catch구문을 사용하지 않아도 된다.(do catch는 오류가 발생했을 때 그 오류를 처리하려고 .. 2020. 8. 16.
[Swift] 오류처리(1) 거의 모든 언어에서는 발생할 수 있는 오류를 대비한 기능들이 존재한다. 물론 스위프트도 마찬가지이다. 예측가능한 오류들도 있을 수 있고 그러지 못한 오류들이 또 있을 수 있다. 이번 글과 다음글에서는 우리가 어떻게 이러한 오류들을 잘 처리할 수 있는지 알아보려고한다. 이번글과 다음글은 야곰님의 스위프트 프로그래밍(3판)의 내용과 docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html 을 참조해서 쓰는 글임을 밝힌다. 처음에는 어떻게 오류를 표현할 수 있는지를 봐야한다. 오류는 다음의 형식으로 표현이 가능하다(enum에 대한 개념은 꼭 아셔야 합니다.) 예시는 자판기에서 음료를 뽑을 때 발생할 수 있는 오류들을 열거형(enum)식으로 나열한 것이다. 중요한.. 2020. 8. 9.
[Swift] Map, Filter, Reduce 함수 알아보기 요즘 많은 IT직군에서 자기들이 쓰는 언어로 알고리즘 테스트를 본다. 만약에 안드로이드 개발을 원하는 사람들은 Java나 Kotlin으로 알고리즘 테스트를 볼 수 있고 IOS 개발을 원한다면 아마 Swift로 알고리즘 테스트를 볼 것이다. 또한 어떤 언어에서 알고리즘 테스트를 공부하던지 배열이 매우 많이 쓰이는 것을 알고 있을 것이다. 오늘은 배열에서 보다 간결하게 그 배열원소들을 정리할 수 있는 함수들을 알아보려한다. 3가지 모두 매우 중요하므로 잘 알아두자!! 1. map, filter, reduce 3가지 함수의 공통점 map함수와 filter함수 그리고 reduce함수의 공통점은 바로 매개변수로 함수를 받는 다는 것이다. 우리는 그리고 이러한 함수를 고차함수라고 부른다. 예를 들면 우리가 map함.. 2020. 8. 2.