스위프트의 String은 값 타입입니다. 새로운 String 값을 생성하면 값이 함수 또는 메서드로 전달되거나 상수 또는 변수에 할당될 때 복사됩니다. 각각의 경우 기존의 값이 아닌 새로운 스트링 값이 생성돼서 전달됩니다. 스위프트 컴파일러는 실제로 필요한 경우에만 값을 복사해서 퍼포먼스를 높여줍니다. String 요소에 접근하기 스트링은 사람이 읽을 수 있는 확장된 문자소 무리의 컬렉션 입니다. 여러 유니코드 스칼라 값으로 "é", "김", "🇮🇳" 같은 여러 문자는 유니코드 스칼라 값으로 구성될 수 있습니다. 이 스칼라 값은 유니코드 바운더리 알고리즘에 의해 결합됩니다. 문자열의 각 요소들은 Character 인스턴스로 표시됩니다. 예를 들어 긴 문자열에서 첫 번째 단어를 찾기 위해 공백을 찾고 그 ..
WithLatestFrom 첫 번째 Observable에서 아이템이 방출될 때마다 두 번째 Observable의 최신 아이템과 결합해서 방출 CombineLatest 어떤 Observable이든 아이템이 방출될 때마다 다른 Observable의 최신 아이템과 결합해서 방출 Zip Observable의 방출된 아이템이 다른 Observable의 아이템과 짝을 이루면 결합해서 방출 참고 아래 사이트에서 직접 마블을 움직여보는게 이해가 가장 빠르다! https://rxmarbles.com/#withLatestFrom http://reactivex.io/documentation/operators/combinelatest.html
Driver UI에 특화된 Observable, MainScheduler에서 사용 error를 방출하지 않음 Observable을 wrapping함 정리 Observable - 값을 방출 - unicat Observer - Observable을 관찰하고 반응 Subject - Observable + Observer - multicast Relay - Subject를 Wrapping - error, complete가 없음 Driver - Observable을 wrapping - error가 없음 Signal Driver와 가장 큰 차이점 source.share(replay: 1, scope: .whileConnected) // driver의 핵심 선언부 source.share(replay: 0, scope..
In-Out Parameters copy-in copy-out 함수 매개 변수는 기본적으로 상수(Constant)입니다. 함수 매개 변수의 값을 해당 함수의 본문 내에서 변경하려고 하면 compile-time 오류가 발생합니다. 함수에서 매개 변수의 값을 수정하고 함수 호출이 종료된 후에도 변경 사항을 유지하려면 inout 파라미터를 사용하면 됩니다. inout 키워드를 앞에 작성하면 됩니다. inout 매개 변수는 함수에 전달된 값을 가지며 함수에 의해 수정되며 원래 값을 대체하기 위해 함수에 다시 전달됩니다. var에만 inout 매개 변수로 전달할 수 있습니다. 상수 및 리터럴은 수정이 불가능하므로 인수로 전달할 수 없습니다. 변수 이름 앞에 앰퍼샌드(&)를 써서 수정될 수 있음을 나타냅니다. fu..