What's new in swift 5.9?
https://www.swift.org/blog/swift-5.9-released/
1. if & switch
위와 같은 식으로 부등호가 들어간 if문들을 elseif가 여러개 있는게 아닌 case로 가독성이 좋게 쓸수 있도록 업데이트가 되었다.
python에서는 가능하던 것인데 오! swift도 된다!~~!!!!!!
2. Macro :코 드 조각을 정의하여 여러 곳에서 재사용할 수 있게 해주고 보통 전처리기에서 생성/compile time에 코드를 변화해서 반복되는 코드를 쓰는 것을 피하게 해준다
- 이번꺼에서 가장 중요한 업데이트~
- 매크로는 함수와 마찬가지로 API여서 모듈을 import해서 쓴다.
- ex) Observation스유에서 프로퍼티래퍼들을 간단하게 사용하게 해준다. @Observable, @State @Bindable이 나머지를 대체?
동작원리
1. externalMacro는 스위프트 컴파일러와 다른 곳에 존재
2. 스위프트 컴파일러가 Macro에 접근하여 해당 기능을 사용
3. 플러그인은 새로운 소스 코드를 생성한 다음 다시 Swift Compiler에 통합
3. SwiftData
기존의 CoreData는 너무오래되었는데 이를 혁신적으로 발전. 하지만 작성이는 몰라..ㅠ 다음에 기회가되면 하겟다
4. Observation
StateObject, ObservedObject도 안써도됨 개쩐다. Observable로 class앞에 @써주게 되면 해당하는 클래스 안에 있는 변수들을 자동으로 @Published가 된다. 그리고 뷰에서 그것을 바인딩해서 사용하면 된다.
Bindable? Binding? 뭔차이지?
@Bindable 속성 래퍼로 Observable 클래스 인스턴스를 보유하는 속성을 표시할 수 있다는 것을 의미하며, 클래스 인스턴스의 속성에 바인딩을 만들 수 있습니다. @Bindable이 없다면, 우리는 그것을 할 수 없습니다: 즉 @Observable로 만든 클래스를 뷰에서 @bindable로 object 프로퍼티를 바인딩해야 사용할수 있다.
'Swift' 카테고리의 다른 글
Assertions && Preconditions (0) | 2024.03.02 |
---|---|
LLVM? Swift가 컴파일되는 과정 Swift 기초 (0) | 2024.03.01 |
Combine(2)- Operator (1) | 2023.10.08 |
TaskGroup (0) | 2023.08.13 |
Swift Concurrency - Async, Await (0) | 2023.08.08 |