[Swift] 데이터 타입

Geon·2022년 7월 10일

Swift 기초

목록 보기
2/10
post-thumbnail

이번 시간에는 Swift의 기본적인 데이터 타입에 대해 알아보자.

Boolean

let isValid : Bool = true

위와 같이 Swift에서는 Boolean 타입을 Bool로 표기한다.

if isValid {
	print(isValid)
}

위에서 선언한 isValid를 조건문에 활용한 모습이다. isValid가 true의 값을 가지기 때문에 위 조건문은 조건을 충족하여 반드시 실행된다.
isValid의 값을 프린트하는 명령이 실행되기에 true가 결과로 출력된다.

while isValid {
	print(isValid)//계속 반복
}

조건문에도 활용이 가능한데, isValid의 값이 true이기에 위의 코드는 while(true)로 무한반복을 하는 코드와 같다. 결과는 isValid의 값인 true가 끊임없이 출력된다.

Integer

let num : Int = 123

Swift에서 정수를 표현하는 Integer 타입을 Int로 표기한다.

또한 Swift에서는 정수형 데이터를 담을 수 있는 타입은 IntUInt가 있는데, 이 둘의 차이를 아래의 코드를 통해 알아보자.

Int.min  // -9223372036854775808
Int.max  // 9223372036854775807

UInt.min // 0
UInt.max // 18446744073709551615

각 타입의 최솟값 & 최댓값을 나타내주는 코드인데, 결과를 보면 UIntInt와 달리 양의 정숫값만을 가질 수 있다는 걸 알 수 있다. 이처럼 음수를 저장할 수 없는 자료형을 Unsigned 자료형, 음수까지 저장이 가능한 자료형을 Signed 자료형이라고 부르기도 한다.

Floating-point (Real Number)

let pi : Float = 3.141592653589793238462643383279502884197169
print(pi)  //결과 : 3.1415927
let pi2 = 3.141592653589793238462643383279502884197169 //자료형 지정 안할시 기본으로 Double형 지정
print(pi2) //결과 : 3.141592653589793

실수를 나타내는 데이터 타입은 FloatDouble이 있다. Float은 4바이트, Double은 8바이트의 메모리 공간을 가지며, 위에서 보다시피 데이터 타입을 명시하지 않으면 기본적으로 Double 타입이 된다. 또한, 출력 결과를 보면 Float과 Double 모두 저장하려고 하는 값을 온전히 담지 못하는 모습을 확인할 수 있는데, 이는 Float은 소수점 이후 6자리까지 정확성을 보장하고, Double은 15자리까지 정확성이 보장된다는 특징을 가지고 있어서 이러한 결과가 나타나는 것이다.

Char & String

let str = "a"
print(type(of: str)) //결과 : String

let char : Character = "a"

Swift에서 문자열은 String, 문자는 Character의 데이터 타입을 가진다. 타입을 명시하지 않고 문자(문자열) 값을 선언하면 기본적으로 String형으로 설정된다. 여기서 알아둘만한 것은 Swift에서 String은 '값 타입' 이기 때문에 String이 다른 함수 혹은 메소드로부터 생성되면 String값이 할당 될때, 이전 String의 레퍼런스를 할당하는 것이 아니라 값을 복사해서 생성한다. 즉, 변수를 복사한 후 복사본을 변경하더라도 원본에 영향을 주지 않는다.

profile
별에 별 지식 저장해놓고 꺼내먹기📚

0개의 댓글