TIL (Today I Learned) 240104

Danny·2024년 1월 7일

TIL(Today I Learned)

목록 보기
3/34

TIL (Today I Learned)

1월 4일 (목)

🔥학습 내용

1. Optional

정의

A type that represents either a wrapped value or the absence of a value.
옵셔널은 타입이다. 감싸고 있는 값(Optional(값) 또는 "부재" 값 (nil 이라는 값을 지칭하는 것 같다.) 을 표현하는 타입이다.
(있을수도? 없을수도? ~ )

Optional 이해하기 🤔

  1. Optional이 왜 필요할 까?
  • 사용자가 개발자의 의도와는 다르게 다른 값을 입력했을 경우, 프로그램(또는 앱)이 에러가 나는 것을 방지 하기 위해 필요하다.
  1. 결국, 우리는 nil 이라는 값을 표현하고 싶다.
  • 일반적인 변수, 상수에는 nil 이라는 값을 초기화 하거나 할당하게 되면 컴파일러가 에러 메시지를 보여준다.
var testNil: Int = nil

입력해준다면, 'nil' cannot initalize specified type 'Int' 라는 메시지가 나온다. Optional 타입을 적용 시켜주기 위해서는 다음과 같이 타입 뒤에 ? 을 붙인다.

var testNil: Int? = nil
  1. Optional 구조
    Optional도 타입이며, enum 이라고 하는 열거형 타입으로 되어 있다.
@frozen
enum Optional<Wrapped>
  1. 어떤 상황에서 사용할 수 있을 까?
  • 함수에 매개변수의 값이 잘못된 값일 경우, 제대로 처리하지 못했음을 알려준 nil을 반환하여 표현할 경우
  • 매개변수를 굳이 넘기지 않아도 된다는 뜻을 사용도 가능하다.

느낀점 🤔

Optional이라는 것을 사전과제 작성을 하다가, 사용자 입력 받는 함수인 ReadLine() 덕에 알게 되었다.
오늘 학습활동을 해보니, Optional이라는 개념도 제대로 잡아야 할 것 같다. 이유는 Optional 이라는 타입을 명확히 이해하고 사용지 않는다면, 앱이 종료가 되는 일이 발생될 수 있기 때문이다.
! 를 이용한 "Unconditional Unwrapping"을 사전과제에는 사용을 했었는데, 지양을 해야하는 이유도 알게 되었다. 이유는.. 사용자가 nil 값이나, 예외 값을 넣는 경우, 에러가 발생하기 때문이다.

추가 학습해야할 사항 🤔

  1. 열거형 타입이란 무엇인지 학습해보기
  2. exit() 함수에 대해 학습해보기
  3. Option unwrapping 방법들 학습해보기

참고자료

  1. https://developer.apple.com/documentation/swift/optional
profile
안녕하세요 iOS 개발자 지망생 Danny 입니다.

0개의 댓글