Skip to content

Optional 이란 무엇인지 설명하시오. #12

Open

Description

@Glsme

nil을 사용할 수 있는 타입과, 사용할 수 없는 타입을 구분하기 위하여 사용하는 열거형.

nil 이란?

  • 값이 없음을 필요하는 키워드
enum Optional<Wrapped> {
	case some(Any)
	case none
}



옵셔널값을 추출하는 방법

  1. 강제 추출 연산자를 붙여 강제로 옵셔널값을 추출
let name: String? = "hano"

print(name!)
  1. if문으로 nil이 아님을 확인 후, 강제로 추출
let name: String? = "hano"

if name != nil {
    print(name!)
}
  1. Optional Binding
  • 바인딩(상수나 변수에 대입)이 되는 경우만 특정 작업을 진행.
if let n = name {
	print(n)
}

func doSomething(name: String?) { // func에서만 사용가능
	guard let n = name else { return }
	print(n)
}
  1. Nil-Coalescing
print(name ?? "신원미상")
  1. Optional Chaining
  • 표현식 자체가 옵셔널의 가능성이 있다는 것을 표현.
  • 체이닝의 결과는 항상 옵셔널이다.
korea?.seoul?.jungGu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions