이전에는 objective-c로 개발
→ 언어가 너무 어렵고, 복잡하고, 최적화도 안되고... 기능 개선보다는 성능 개선에 중점이 될 수 밖에...ㅠㅠ
저수준 프로그래밍 → 자동 관리영역으로 대체
생소한 문법, 스목토크 메시지 문법 → 우리에게 자연스러운 python, java 문법, 오브젝티브-c도 호환 가능
인터렉티브 플레이그라운드 (즉석 인터프리터 제공)
애플의 메인 프레임워크인 코코아 프레임웤, 코코아 터치 프레임워크 사용 가능
옵티마이저, 오토벡터링,,, arc 이건 뭔지 모르겠지만 이런거도 사용할 수 있다고 한다
문법적 특징
정적 바인딩 / 네임스페이스 사용
튜플, 딕셔너리가 있다
일부 타입 추론 진행, 함수형
제네릭이 있음 → 데이터 구조체 타입
문자열 템플릿 → f스트링 같은게 존재 \\(변수명)
세미콜론 선택사항
인터페이스 존재 → 프로토콜
protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}
extension → 구조체, 클래스, 프로토콜에 기능을 추가하는 수평적 확장 기능
메모리 관리 방법: 자동 참조 카운트 (ARC) → 파이썬이랑 같은거인듯?