관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 6. WWDC2023 정리 - 스위프트의 새로운 기능 (1) (조건문이 표현식으로 변경, type check 속도 향상, repeat each 제네릭스) 본문

WWDC 정리/WWDC 2023 정리

[iOS - swift] 6. WWDC2023 정리 - 스위프트의 새로운 기능 (1) (조건문이 표현식으로 변경, type check 속도 향상, repeat each 제네릭스)

jake-kim 2023. 6. 11. 01:57

(1). 스위프트의 새로운 기능 - (조건문이 표현식으로 변경, type check 속도 향상, repeat each 제네릭스)

(2). 스위프트의 새로운 기능 - (Swift Macro 개념, Swift Macro 동작 원리)

(3). 스위프트의 새로운 기능 - 애플이 Foundation을 공개한 이유, ~Copyable, C++ interop, Actor and concurrency, unownedSerialExcutor

스위프트의 새로운 기능

  • swift-evelution에서 애플한테 제안을 하는데, 이 제안을 애플에서 검토 후 받아들이는데 이번에 추가된 새로운 기능이 다수 존재
  • 애플에서는 따로 커뮤니티를 만들어서 개발에 관한 부분을 활성화하기 위해서 Swift.org에서도 다양한 활동 수행
    • if/else 및 switch 문을 표현식으로 사용이 가능
    • Type check 속도 향상
    • Generics 사용 방법의 편의성 (each 키워드)

ifelse 및 switch 문을 표현식으로 사용

  • if/else 및 switch문을 등호 뒤에도 사용이 가능

이전 코드) 읽기 어려운 상항 연산자로 초기화하는 상태

변경 코드) 읽기 쉬운 코드로 변경이 가능

  • 원래는 closure를 사용하여 초기화 했다면, 이제는 표현식으로 편하게 사용 가능

이전 코드) closure를 사용하여 초기화

변경 코드) if문이 표현식으로 사용할 수 있기 때문에 단순히 사용 가능

Type check 속도 향상

  • 원래는 ResultBuilder 사용 시, 컴파일 에러를 발생하는데까지 type을 검색하는데 가능한 많은 유효하지 않은 경로를 탐색하는데 시간이 오래걸렸음
  • Swift 5.8부터 type 검사가 훨씬 빨라짐
  • 오류 메시지가 더욱 명확해짐

ex) Swift5.7에서는 부정확한 컴파일 에러가 발생

이전 컴파일에러

Swift5.8 에서는 정확한 컴파일 에러가 발생

정확한 컴파일에러 발생

Generics 사용 방법의 편의성 (each 키워드)

  • each 키워드 - 인수의 개수를 추상화해주는 기능

ex) 이전에는 generics를 사용할 때 인수 타입과 반환 타입이 여러개가 생길 때 일일이 다 작성해줘야 하는 번거로움이 존재

  • each를 사용하면 인수의 개수 자체를 추상화하여 일일이 인수의 개수를 추가시켜주지 않아도됨

each로 인수의 개수를 추상화

사용하는쪽)

* 참고

https://github.com/apple/swift-evolution

https://developer.apple.com/videos/play/wwdc2023/10164/

Comments