iOS/Swift

[Swift] 기본 데이터 타입

_Rey 2022. 6. 4. 23:00

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진법으로 실수값을 계산할 때, 부동소수점 방식을 사용한다.

11.5를 10진법과 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
// 순서가 있다!