swift.org를 참고하여 정리한 글입니다.
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
www.swift.org
Int
Int: 정수 데이터(음수, 0, 양수)

Int32: 32비트 크기의 Int
Int64: 64비트 크기의 Int
크기에 따라 저장할 수 있는 수의 범위가 달라진다.

우리가 평소에 사용하는 Int는 64비트 크기라는 것을 알 수 있다.
특별한 경우가 아니라면, 보통은 신경쓰지 않고, 그냥 Int 타입을 사용한다.
Bool
True와 False
1 byte(= 8 bit)의 크기를 갖는다.
주요 연산자
&&, ||, !
// &&: and 연산
true && true
true && false
func returnFalse() -> Bool{
print(false)
return false
}
func returnTrue() -> Bool{
print(true)
return true
}
returnTrue() && returnFalse()
returnFalse() && returnTrue()
// && 연산은 앞에서부터 컨디션을 체크하고 false가 발견되면 뒤쪽 피연산자는 그냥 넘긴다!
// 따라서 결과가 거짓일 확률이 높은걸 앞으로 두는게 더 효율적이다.
// ||: or 연산
false || true
returnFalse() || returnTrue()
// ! not 연산
!true
// if에서 ,로 묶여 사용될 때
// and 연산처럼 앞쪽 피연산자의 값에 따라 뒤쪽 피연산자의 연산이 이뤄지지 않는다.
if returnTrue(), returnFalse() {
print("returnTrue(), returnFalse()")
}
if returnFalse(), returnTrue() {
print("returnTrue(), returnFalse()")
}
Float, Double
실수 타입이라고 부르지만, 정확히는 부동소수점(Floating-Point) 타입으로 부르는 것이 정확하다.
컴퓨터가 2진법으로 실수값을 계산할 때, 부동소수점 방식을 사용한다.

소수점 뒤 쪽의 10111 -> 가수부
2의 승수인 4는 이진법으로 100 -> 지수부
양수일 경우 0 -> 부호비트
32비트(단정밀도)일 경우 11.5는
0 00000100 10111000000000000000000 가 된다.
정확도에 따라
-> Single Precision(단정밀도) 32비트
-> Double Precision(배정밀도) 64비트
로 나뉘어지며, Double이라는 단어는 여기서 나온 것이다!
Character, String
문자열: 문자를 나열한 것

큼따옴표 표시한 것은 String 타입으로 인식한다. -> Swift의 타입 추론 기능

타입을 명시해주면 Character로 쓸 수 있다.
Any, AnyObject, nil
Any: 어떤 타입도 될 수 있다

AnyObject: 어떤 클래스 타입도 될 수 있다.


nil: 아무 값도 없음을 나타내는 키워드, 다른 언어에서는 null, none 등으로 사용된다. 타입은 아니다.
Tuple
Collection Type은 아니다.
단순한 값 그룹이라고 이해하면 된다.
let 집근처맛집 = ("버거킹", "투썸플레이스")
// 이름 지정가능
let 투썸메뉴 = (menu: "아이스아메리카노", price: 4500)
집근처맛집.0 // "버거킹"
집근처맛집.1 // "투썸플레이스"
type(of: 집근처맛집) // (String, String).Type
투썸메뉴.0 // "아이스아메리카노"
투썸메뉴.price 4500
// 순서가 있다!
'iOS > Swift' 카테고리의 다른 글
[Swift] Conditional & Loop (0) | 2022.06.05 |
---|---|
[Swift] Collection Type (0) | 2022.06.04 |
[Swift] Protocol (0) | 2022.05.27 |
[Swift] Method Swizzling (0) | 2022.05.11 |
[Swift] Closures (2) (0) | 2022.05.10 |