Swift 3

[Swift] subscript를 사용해서 문자열도 배열처럼 쉽게 접근하자

안녕하세요! 오늘은 subscript 문법을 사용해서 문자열도 배열처럼 쉽게 접근해 볼 거예요. 그전에 배열과 문자열에서 요소 접근 방법이 어떻게 다른지 확인해 볼까요? 배열, 문자열에서는 특정 요소에 어떻게 접근할까? 우리는 배열에서 n번째 위치, 또는 특정 범위에 있는 요소에 접근할 때는 다음과 같이 쉽게 접근할 수 있어요. var array = [1, 2, 3, 4, 5] // 2번째 요소에 접근 print(array[2]) // 3 // 2~4번째 요소에 접근 print(array[2...4]) // [3, 4, 5] 그러면 문자열에서는 어떻게 접근하는지 한번 확인해 볼까요? var string = "12345" // 문자열 내 2번째 요소에 접근 string[string.index(string...

Swift 2024.03.30

[Swift] 옵셔널 타입은 열거형 타입이다

안녕하세요! 오늘은 옵셔널(Optional) 타입에 대해 조금 자세히 알아보는 시간을 가져보도록 할 거예요. 옵셔널 타입에 대해서는 많이들 사용하셔서 다들 알고 계시죠? 옵셔널 타입은 값이 존재하지 않을 수도 있음을 나타내는 키워드예요. 값이 존재하지 않을 때는 nil 키워드로 나타내고 있죠. 그런데! 사실 이 옵셔널 타입이 열거형 타입이라는 것을 알고 계셨나요?? (저도 1년 넘게 모르고 있다가 최근에 문법 공부를 다시 하면서 알게 되었어요 😅) 그렇다면 옵셔널 타입이 어떤 식으로 구현되어 있는지 한번 알아볼까요? 열거형 타입으로 정의된 옵셔널 타입 열거형 타입은 뭐였죠? 특정 케이스(case)들로 묶어둔 타입이에요. 예를 들어 월(Month)은 1월부터 12월까지 총 12달의 케이스로, 방향은 동, ..

Swift 2024.03.20

[Swift] 간단히 알아보는 Copy-on-Write

안녕하세요!오늘은 Swift에서 쓰는 굉장히 유용한 기능, Copy-on-Write에 대해 알아볼 거예요.이를 시작하기 전에, Swift에서의 컬렉션 타입부터 먼저 살펴보도록 하죠.  Swift에서 컬렉션 타입은 값 타입(Value Type)이다. 값 타입(Value Type)은 메모리 Stack 영역에 저장되며, 필요시 메모리의 값이 복사되어 전달되고,참조 타입(Reference Type)은 메모리 Heap 영역에 저장되며, 필요시 메모리 주소가 전달돼요.Swift에서 컬렉션 타입은 값 타입이라고 했기 때문에 메모리의 값이 복사되어 전달되는 것이죠.그렇다면 한번 확인을 해볼까요?var array1 = [1, 2, 3]var array2 = array1array2.append(4)print(array1)..

Swift 2024.03.19