본문 바로가기
STUDY/iOS

[앨런 swift 문법 마스터 스쿨] 옵셔널 타입 컬랙션 Array Dictionary Set 복습

by 23g 2024. 7. 14.

0. 고고띵,,

아이고 손목아

 

1.

- 옵셔널 타입 : 값이 없는 상태인(nil)을 포함하는 타입

var a: Int?

a = 5

// -> 출력 시 5가 아니라 Optional(5) 출력됨

 

옵셔널 타입을 사용하는 이유는 값이 없는 경우에 부르게 되면 에러가 발생하는데

옵셔널 타입으로 이 에러를 방지하기 위해 (nil의 존재로)

 

     - 옵셔널 타입을 추출하는 방법 (->논 옵셔널로)

   

//강제 추출 -> 값이 없는 경우 에러 발생함

num!

// nil인지 확인 후 강제 추출

if num != nil {
	print(num!)
}

// 옵셔널 바인딩 ⭐️ -> 변수나 상수에 바인딩(대입) 된다면!, nil이면 안되기 때문!
	//if let 바인딩
	if let x = num {
		print(x)
	}
    
    //guard let 바인딩
	guard let x = num else{ return }
    print("x")

//Nil-Coalescing -> ?? 뒤의 부분이 값이 없을 때의 기본값임

num ?? "1"


// + 
//옵셔널 체이닝 : 옵셔널 타입의 값 하위에 접근할 때도 ? 붙이기

num?.count

 

- 컬랙션 : 데이터를 효율적으로 관리하기 위한 자료형

 

- Array : 배열 -> 순서 ㅇ

let array: [Int] = [1, 2, 3]

//활용

//삽입
array.insert(1, at: 3)

//교체
array[1] = 5

//추가
array += [6]
//or
array.append(7)

//삭제
array.remove(at: 2)

//등등

 

- Dictionary : 키과 값을 쌍으로 만들어 관리하는 컬렉션 -> 순서 X, Hashable 해야함(값이 유일해야함)

let dic: [String: String] = ["A", "apple", "B", "banana"]

//활용
//업데이트
dic["A"] = "abc"

//삭제
dic["B"] = nil

//등등

 

- Set : 집합 -> 순서 X, Hashable

let set: Set = [1, 2, 3]
// 배열과 구분 안되기 때문에 반드시 Set 선언 해야함

//활용
//업데이트
set.update(with: 4)

//remove
set.remove(3)

//등등

 

요까지임둥

 

+) 추가

array를 자르면(slice) 타입이 Array<자료형>이 아니라 

ArraySlice<자료형> 이렇게 됨.

 

Array 로 바꾸기 위해선 Array() 로 감싸주면 됨

let slice = array[1...3] // ArraySlice<Int> 타입
let newArray = Array(slice) // Array<Int> 타입

최근댓글

최근글

skin by © 2024 ttutta