변수
는 항상 사용 전에 초기화되어야 한다. 배열
인덱스는 범위초과에러 out-of-bounds
에러에 대해 검사되어야 한다. 정수
는 오버플로우
에 대해 검사되어야 한다.옵셔널
은 nil
값이 명시적으로 처리되도록 한다.nil
은 null
과 비슷한 개념 )Swift는 강력한 기능으로 타입 추론
과 패턴매칭
을 다른 유명한 언어를 개발하는 개발자들에게 친숙한 현대적이고 가벼운 구문으로 결합하여 복잡한 것도 명확하고 간결한 방식으로 표현할 수 있다. 그 결과로 코드는 읽고, 쓰고, 유지하기 쉽다.
불투명한 타입 opaque type
을 반환하는 함수는 Swift 5.1
런타임이 필요하다.try?
표현식은 이미 옵셔널 optional
을 반환하는 표현식에 추가로 옵셔널 표현식을 도입하지 않는다.큰정수 리터럴 초기화 표현식
은 올바른 정수
타입으로 추론한다. 예를 들어 UInt64(0xffff_ffff_ffff_ffff)
는 오버플로우가 아닌 올바른 값이다.동시성 concurrency)
은 Swift5
언어모드와 동시성 타입을 제공하는 Swift 표준 라이브러리의 버전이 필요하다.Swift6
으로 작성된 타겟은 Swift5, Swift4.2 또는 Swift4로 작성된 타겟에 따라 달라질 수 있고, 그 반대의 경우도 마찬가지이다. 즉, ,여러 프레임워크로 분할된 대규모 프로젝트가 있는 경우 코드를 새로운 언어 버전으로 한번에 하나씩 프레임워크로 마이그레이션할 수 있다.