오늘은 Swift에서 String을 사용할때 주의해야할 점을 알아보겠습니다. swift 언어로 set, string, array 등의 컬렉션 타입이 비었을때를 체크할 때, 많은 사람들이 아래와 같이 사용하곤 합니다.. 아래의 코드를 보겠습니다. 위의 코드는 string의 count를 통해 문자열의 길이를 체크해서 0일 경우 비어있음으로 판단하는 코드입니다. 하지만, 위의 코드보다 더 보기좋고, 효울적인 코드가 있습니다. 해당 코드는 아래와 같습니다. 스위프트의 String 타입에서 count대신 isEmpty를 사용해서 문자열이 비어있는지를 확인하는 것은 보기에도 좋지만 isEmpty는 count == 0에 비해 더 빠른 장점도 갖고 있습니다. 그 이유는 무엇일까요?? 🤔 How Swift strings..
BidirectionalCollection 양방향 컬렉션 후방, 전방 순회를 둘 다 지원하는 컬렉션(Collection) Protocol 양방향컬렉션 프로토콜 선언 Overview 개요 양방향 컬렉션(Bidirectional Collection)은 전방 뿐만 아니라 후방의 유효한 인덱스에서 순회하는것을 지원합니다. startIndex 필요 없이 말이죠. 양방향컬렉션은 이렇듯 전방순회뿐만 아니라 후방 순회가 가능한데요. 이에 따른 추가적인 연산기능을 제공하고 있습니다. 마지막 요소를 효율적으로 접근할 수 있도록 하는 기능, 역순으로 요소들을 얻을 수 있게 해주는 reversed() 메서드 등이 그 예입니다. 그 뿐만 아니라, 양방향 컬렉션은 suffix(_:)와 같은 메서드를 사용할 수 있게 해줍니다. s..
Traversing a Collection 컬렉션 순회하기 비록 Collection이 채택하고 있는 Sequence 프로토콜 또한 순회하는 역할로서 사용되어지지만, Collection 은 멀티패스(MultiPass)를 보장합니다. 어떠한 요소(element)라도 그들의 인덱스가 저장 됨으로서 반복적으로 접근될 수 있습니다. 무엇보다도, Collection의 색인 범위는 내부 요소들의 위치에 대한 유한한 범위를 갖고 있습니다. 즉, Collection이 유한한 색인 범위를 보장한다는 것은 많은 Sequence 작업을 함에 있어 안전을 보장함을 의미합니다. 예를들면 Collection이 특정 요소를 가지고 있는지 확인하는데 사용하는 contains(_:) 메서드가 있습니다. 그들의 위치에 따라 Collect..
Slice 컬렉션 조각 컬렉션 조각, Slice 또한 제네릭 구조체로 선언되어있습니다. 선언부에서 볼 수 있듯이, 원본 컬렉션의 타입을 따라가게 됩니다. Slice는 이름 그대로, 원본 컬렉션의 부분 배열이라 할 수 있을 것 같습니다. 컬렉션 프로토콜도 그렇듯, 이를 준수하는 Sllice는 스위프트 표준 라이브러리에 포함되어 있습니다. Slices Share Indices 기존 색인을 공유하는 부분 컬렉션 컬렉션과 그 컬렉션의 부분 조각(Slices)은 동일한 색인, 인덱스 값을 공유합니다. Collection의 요소는 컬렉션 내 부분 조각(Slices)에도 동일하게 공유됩니다. 부분 조각 혹은 원본 컬렉션이 생성된 이후 변경되지 않았다면 말이죠. 그 예를 들자면, 세션 간 각 클래스의 결석 수를 고정적..
- Total
- Today
- Yesterday
- 스위프트
- 알고리즘문제
- Swift 알고리즘
- swift 기초
- CoreML
- 프로그래머스
- uikit
- 개발자문서
- swift알고리즘
- swift 문자열
- 부스트코스
- Protocol
- swift문제
- 자연어처리
- 백준swift
- publisher
- ios
- createML
- 알고리즘
- swift reduce
- 김프매매
- 컬렉션
- swift string
- swift
- 프로토콜
- 프로그래머스swift
- 백준알고리즘
- swift언어
- SwiftUI
- Collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |