반응형 SWIFT41 [Swift 5.1] 구조체 생성자에 기본값 지원 (SE-0242) SE-0242 Synthesize default values for the memberwise initializer에서 소개된 프로포절이 5.1에서 구현되었습니다. 워낙 간단한 변화이고 내용도 쉬운 편이라 예제를 프로포절의 것 그대로 옮겨봅니다. struct Dog { var age: Int = 0 var name: String } 위 코드에서 주의 깊게 봐야 할 점은 age 프로퍼티에 초기값이 부여되어 있다는 점입니다. 그럼에도 기존 Swift 버전의 경우 생성되는 기본 생성자는 age와 name 두 파라미터 모두 초기값이 필요하게 생성되었습니다. 5.1부터는 이제 "초기값이 있는 프로퍼티는 굳이 생성할 때 값을 입력받을 필요가 없지 않냐"라는 요구가 받아들여져서 아래와 같이 사용할 수 있는 기본 생성.. 2019. 10. 17. [Swift 5.1] 순서가 있는 콜렉션끼리 차이점 비교하기 (SE-0240) SE-0240 Ordered Collection Diffing 프로포절은 제목처럼 컬렉션끼리 비교해서 차이점을 얻기 위한 것으로 Swift 5.1에 구현되었습니다. 단순하게 말하자면 difference()라는 메서드가 Collection에 추가되었다라고도 볼 수 있겠네요. 일단 예제를 봅시다. let alpha1 = ["a", "b", "c"] let alpha2 = ["a", "c", "d"] let diff = alpha1.difference(from: alpha2) for d in diff { print(d) } .difference() 메서드를 이용해 두 컬렉션을 비교할 수 있습니다. 결과는 CollectionDifference라는 타입의 컬렉션으로 돌아오는데 데이터를 가지고 있는 enum 필드들.. 2019. 10. 15. [Swift 5.1] Self 키워드의 기능 추가 (SE-0068) macOS Catalina 공식 버전 출시 이후로 늦었지만 Swift 5.1의 변화점들에 대해 공부하고 있습니다. 이 글을 시작으로 Swift 5.1에서 뭐가 바뀌었는지 눈에 띄는 것들을 글로 정리해보고자 합니다. 첫 글은 SE-0068 Expanding Swift Self to class members and value types에서 소개된 Self의 기능 확장에 대한 이야기입니다. 뭐 아시겠지만 Self는 원래 자기 자신의 동적 클래스(dynamic class)를 가리키는 키워드입니다. 우선 예제를 살펴봅시다. class MyClass { class var name: String { return "unknown name" } func show() { print("My name is \(MyClass... 2019. 10. 13. 흥미로웠던 링크들 10월 1주차 블로그 글 업데이트가 점점 늦어지고 있다는 것에 좀 압박감을 느끼고 있다. 이대로 묻히는 것은 안 좋을 것 같고, 글 쓰는 게 오래 걸리는 만큼 좀 더 가벼운 주제의 글로 빈 공간을 메꿔보고자 하는 생각이 들었다. 그래서 한 주 단위로 링크를 정리하는 글을 종종 써보려고 한다. 이 글은 이 시리즈의 첫 글이다.Commits - hlissener/doom-emacsDoom Emacs는 Spacemacs와 함께 Emacs 커뮤니티 드리븐 설정 프로젝트의 양대 산맥 중 하나이다. 뭔가 하면, 이맥스의 방대한 패키지들의 설정을 한데 모아서 좀 더 설정하기 쉽게 만든 프로젝트, 좀 더 단순하게 말해서 그냥 이맥스 설정 덩어리다.둘 다 특징으로 Vim 키맵 확장인 evil을 기반으로 만들어졌다는 점이 특징이긴 하고.. 2019. 10. 7. Swift 5에서는 뭐가 바뀌었을까? Swift 5가 지원되는 Xcode 10.2가 정식으로 릴리즈 되었습니다. 이에 발맞춰 (그리고 공부 삼아) Swift 5의 변경점을 정리해 보는 글입니다. 이 글은 공식 블로그의 Swift 5 릴리즈 소식을 기준으로 작성합니다. ABI Stability Swift 5는 ABI Stability, 즉 바이너리 레벨의 API 호환성을 드디어 안정화시킨 버전입니다. 이제 사용하는 프레임워크나 라이브러리가 Swift 5 이상으로 빌드했다면 컴파일러가 버전 다르다고 투덜거리는 것을 볼 확률이 많이 없어진다는 말입니다. Raw Text SE-0200 Enhancing String Literals Delimiters to Support Raw Text 이스케이프(escape) 등 문자열 대치(String Inter.. 2019. 4. 7. 이전 1 2 3 다음 728x90 반응형