데이터 타입(Data Types)

썹스·2022년 9월 29일
0

Swift 문법

목록 보기
3/68

데이터 타입(Data Types)이란?

컴파일러에게 특정 데이터의 형태를 알려주기 위해 사용하는 일종의 표현 방법입니다.

Swift에는 다양한 형태의 데이터 타입이 존재하며, 사용자가 데이터 타입을 직접 만들 수도 있습니다.

📌 Swift의 기본 데이터 타입

Swift에는 정말 다양한 데이터 타입이 존재합니다. 그중에서 가장 많이 사용되며, 가장 기본적인 데이터 타입은 아래와 같습니다.

✅ Int: 정수형 데이터 타입

  • 자료형의 크기: 8바이트
  • 정수(소수점이 없는 수)를 저장하는 데 사용
  • 양수, 음수, 0 값을 저장할 수 있습니다.
var age: Int = 20

✅ Double과 Float: 부동 소수점 데이터 타입

  • Double 자료형의 크기: 8바이트
  • Float 자료형의 크기: 4바이트
  • 소수점이 있는 숫자를 저장하는 데 사용
  • Double은 64비트로 부동 소수점 수를 저장, 소수점 15자리까지 정확
  • Float은 32비트로 부동 소수점 수를 저장, 소수점 6자리까지 정확
  • 데이터 타입을 선언하지 않으면(타입 추론) Double형이 기본타입으로 정의됩니다.
var x: Double = 1.1234567891234567  
var y: Float = 1.1234567891234567   
print(x)
print(y)
/*
출력 결과
1.1234567891234566   15자리까지 정확
1.1234568            6자리까지 정확
*/

✅ Character: 문자 데이터 타입

  • 자료형의 크기: 16바이트
  • 문자, 숫자, 문장 부호, 심볼 같은 유니코드 문자 하나를 저장
  • Swift에서 Character형의 초깃값을 선언할 때는 큰따옴표만 사용합니다.(작은따옴표 사용X)
  • Character형은 데이터 타입을 생략할 수 없습니다. (Character 생략 시 String형으로 인식)
var x: Character = 'a'  //작은 따옴표 사용X
var x: Character = "a"  //큰 따옴표 사용O
var y: "b"   //y의 데이터 타입은 String이다. (데이터 타입을 생략할 경우 String형이 기본적으로 적용된다.)

✅ String: 문자열 데이터 타입

  • 자료형의 크기: 16바이트
  • 문자의 집합을 저장할 때 사용합니다.
var name: String = "홍길동"
var address = "서울특별시 OO구"

✅ Bool: 부울 테이터 타입

  • 자료형의 크기: 1바이트
  • 참 또는 거짓(1 or 0) 조건을 처리하는 데이터 타입
  • Boolean 데이터 타입을 처리하기 위하여 두 개의 불리언 상수값(true/false)을 사용
var x: Bool = true
var y: Bool = false

✅ Any

  • 자료형의 크기: 32바이트
  • Swift에서 모든 데이터 타입을 사용할 수 있는 최상위 개념의 데이터 타입입니다.
var a: Any = 1         //a의 데이터 타입: Int     하지만 메모리 사용량은 32바이트
var b: Any = 1.2       //b의 데이터 타입: Double  하지만 메모리 사용량은 32바이트
var c: Any = "hello"   //c의 데이터 타입: String  하지만 메모리 사용량은 32바이트
var d: Any = true      //d의 데이터 타입: Bool    하지만 메모리 사용량은 32바이트

📌 타입 어노테이션(type annotation)과 타입 추론(type inference)

타입 어노테이션(type annotation)

사용자가 데이터 타입을 직접 작성/선택하여 변수 또는 상수를 선언하는 방식입니다.

var age: Int = 20
var name: String = "홍길동"

타입 추론(type inference)

변수 또는 상수의 데이터 타입을 컴파일러가 추론하여 자동으로 정의해주는 방식입니다.

var age = 20         //컴파일러가 자동으로 age의 데이터 타입을 Int형으로 결정
var name = "홍길동"   //컴파일러가 자동으로 name의 데이터 타입을 String형으로 결정

타입 어노테이션이 좋을까 아니면 타입 추론이 좋을까??🤔

컴파일러가 자동으로 데이터의 타입을 결정해주는 타입 추론(type inference)은 사용하기 간편하고, 코드를 간단하게 작성할 수 있다는 장점을 가지고 있습니다. 하지만 컴파일러가 컴파일하는 과정에서 데이터를 추론하는 과정이 생기기 때문에 시간적인 면에서 생각해보면 타입 어노테이션(type annotation)이 좋습니다.

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글