- It’s an industrial-quality programming language that’s as expressive and enjoyable as a scripting language
= 스위프트는 스크립트 언어만큼 표현력있고 즐거운 산업 품질 프로그래밍 언어이다
(스크립트 언어처럼 사용할 수 있지만 스크립트 언어는 아니다)
- Swift defines away large classes of common programming errors by adopting modern programming patterns
= 스위프트는 최신 프로그래밍 패턴을 채택해서 많은 클래스의 흔한 프로그래밍 에러를 정의한다
- Variables are always initialized before use.
= 변수는 항상 사용전에 초기화된다 - Array indices are checked for out-of-bounds errors.
= 배열 인덱스는 범위초과 에러에 대해 체크된다
(게임에서 벽뚫기 같은 게 이를 이용한 버그라고 볼 수 있다) - Integers are checked for overflow.
= 정수는 오버플로우에 대해 체크된다
(정수 오버플로우: 정수가 허용된 범위를 초과할 때 발생하는 에러)
(ex) 0~10까지 담을 수 있는 곳에 정수 11을 담으면 범위를 초과해서 0이 담긴다)
(몸무게가 체중계의 측정 한도를 넘거나, 네이버 날씨에 온도가 비정상적으로 뜨는 것, 그 외에 게임에서도 여러 예시를 볼 수 있다) - Optionals ensure that nil values are handled explicitly.
= 옵셔널은 nil 값이 명시적으로 다뤄지는 것을 보장한다 - Memory is managed automatically.
= 메모리는 자동적으로 관리된다 - Error handling allows controlled recovery from unexpected failures.
= 에러 처리를 통해 예기치 못한 오류에 대한 복구를 제어할 수 있다
- Swift code is compiled and optimized to get the most out of modern hardware.
= 스위프트 코드는 최신 하드웨어를 최대한 활용하기 위해 컴파일되고 최적화된다
(컴파일러 언어이다)
※ 컴파일러 언어와 인터프리터 언어의 차이
컴파일러 언어 | 인터프리터 언어 | |
컴파일 | o | x |
실행 속도 | 빠름 (단, 컴파일을 해야하기에 실행 전까지 시간이 소요됨) |
느림 (단, 컴파일 과정이 없기 때문에 실행 전까지 걸리는 시간이 짧음) |
실행 파일 | o | x |
실행 단계 분리 | 컴파일 단계와 실행 단계 구분이 존재 |
인터프리트 단계와 실행 단계 구분이 없음 |
방식 | 소스 코드 전체를 컴파일 | 소스 코드를 한 줄씩 변환 |
타입 명시 | 보통 정적 타입 언어 | 보통 동적 타입 언어 |
※ 스위프트는 기본적으로 정적 타입 언어인데, 선택적으로 동적 타입 언어의 기능을 제공한다
- Swift combines powerful type inference and pattern matching with a modern, lightweight syntax, allowing complex ideas to be expressed in a clear and concise manner.
= 스위프트는 강력한 타입 추론과 패턴 매칭을 현대적이고 가벼운 구문과 결합해서, 복잡한 생각을 명확하고 간결한 방법으로 표현할 수 있도록 한다
(타입 추론(<->타입 어노테이션): 변수에 타입을 지정하지 않고 값을 넣었을 때, 컴파일러가 값을 토대로 타입을 추론해서 지정하는 것
ex)
let type = "10"
(패턴 매칭: 특정 패턴(if문의 조건이나 switch문의 case의 조건 같은)과 변수의 값을 매칭되도록하는 것?, 패턴 종류 다양
(패턴 종류(크게 보면 2가지): 어떤 종류의 값과도 일치하는 패턴과 어떤 종류의 값과는 일치하지 않는 패턴(특정 종류의 값과만 일치하는 패턴))
ex)
let a = 10
//어떤 종류의 값과도 일치하는 패턴
switch a{
case _:
print("a is ten")
}
//어떤 종류의 값과는 일치하지 않는 패턴
if String(a) == "10"{
print("a is ten")
}
'iOS' 카테고리의 다른 글
Swift: A Swift Tour - Objects and Classes (0) | 2023.07.13 |
---|---|
Swift: A Swift Tour - Functions and Closures (0) | 2023.04.25 |
Xcode: 설치하기 (0) | 2023.04.13 |
Swift: A Swift Tour - Control Flow (0) | 2023.04.10 |
Swift: A Swift Tour - Simple Values (0) | 2023.04.07 |