옵셔널 타입의 기본 개념

쏘스야·2023년 4월 4일
0

ios 개발자의 첫걸음

목록 보기
27/61
/**
 모든 프로그래밍에서 아래와 같은 상황은 항상 골치거리임
 1. 데이터 타입에 ? 를 붙인다.
 2. 일반 타입과 옵셔널 타입은 완전 다른 타입이다.
 3. 일반 타입은 nil 을 할당할 수 없다 하지만 옵셔널 타입은 nil 할당 가능
 
 */
var yourName: String?    // 선언
//yourName = "홍길동"  // 초기화

print(yourName) // nil 은 값이 없음을 표현하는 키워드, 실제 값이 없진 않다.


var yourAge: Int? = nil
//var yourAge = nil // 옵셔널로 하면 타입을 지정해줘야함 타입추론으론 안됨.


var name: String? = "소야"
var num: Int? = 3

var optionalName: String?

print(optionalName)

print(num)

// 정식문법 표기

var num1: Int? = 2  // 간편표기
var num2: Optional<Int> = 0 // 정식문법


// 옵셔널 타입 연습

var optionalNum: Int? = nil
optionalNum = 10

print(optionalNum!) // 옵셔널 벗기기 선언 후 변수명에!


// 옵셔널 타입은 항상 var 로 사용해야함.

var optionalStr: String? = nil

// 옵셔널을 다른 변수에 담는다면 옵셔널 타입으로 된다.
var a: Int? = 7
var b = a

print(b)

// 옵셔널 타입에 일반타입을 담으면 옵셔널 타입이 사라지는 건 아니다. 안에 값만 변경 가능.
var c: Int = 5
b = c

print(b)

// 옵셔널 타입끼리는 연산이 불가능

var numA: Int? = 3
var numB: Int? = 7

//print(numA + numB)

var numC: Int? = nil
print(numC)
profile
개발자

0개의 댓글