데이터 타입?
프로그램 내에서 다뤄지는 데이터의 종류를 뜻한다. 스위프트의 기본 데이터 타입은 구조체를 기반으로 익스텐션과 제네릭 등을 사용해서 구현되어 있다.
Int와 UInt
- 정수 타입
- 부호를 포함하지 않는 0을 포함한 양의 정수 UInt
- 시스템 아키텍처에 따라 Int와 UInt의 타입이 다름
- 32비트 아키텍처에서는 Int32, UInt32 → Int, UInt
- 64비트 아키텍처에서는 Int64, UInt64 → Int, UInt
- 두 타입은 다른 타입이고 왠만하면 Int를 사용, 최대값이 더 필요할 때 UInt 사용
- 각 타입의 최대값 max, 최소값 min으로 접근 가능
- 2진수 0b / 8진수 0o / 16진수 0x
Bool
Float와 Double
- 부동소수 타입
- 부동소수점을 사용하는 실수
- 32비트 Float, 64비트 Double → 왠만하면 Double 사용
임의의 수 만들기
random(in:) 메서드로 정수, 실수 모두 임의의 수를 만들 수 있다.
Int.random(in: -100...100)
Double.random(in: 1.45...4.5)
Charactor
- 말 그대로 '문자'
- 스위프트는 유니코드 9 문자를 사용 → 영어를 비롯한 모든 언어, 특수 기호 등 사용 가능
String
- 문자의 나열, 문자열
- 마찬가지로 유니코드 9 사용
- 값의 앞뒤에 큰 따옴표 사용
- 유니코드의 스칼라값을 사용하면 값에 해당하는 표현이 출력된다.
- 문자열에 관련된 많은 메서드, 프로퍼티가 존재.
특수문자
- 제어문자라고도 함
- 백슬래시에 특정한 문자를 조합해서 사용
- \n 줄바꿈
- \ 문자열 내 백슬래시 표현
- \" 문자열 내에서 큰 따옴표 표현
- \t 탭
- \0 문자열이 끝났음을 알리는 null 문자
Any, AnyObject, nil
- Any 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻, 모든 데이터 타입을 할당할 수 있다.
- AnyObject Any보다 조금 한정, 클래스의 인스턴스만 할당 가능
- nil 특정 타입이 아닌 없음을 나타냄. 접근하려고 하면 Null point exception이라는 런타임 오류 발생
- Never 특정 함수의 반환 타입