[Swift] 스위프트 기초 - 데이터 타입 기본

toma·2022년 9월 7일
1
post-thumbnail

안녕하세요! toma입니다~
야곰님의 스위프트 프로그래밍을 읽으면서 노션에 정리해둔 것들을 벨로그에 조금씩 옮겨보려고 합니다!

📌 데이터 타입 기본

Int, UInt

  • 정수 데이터 타입이다.
  • 최댓값과 최솟값은 각각 max, min 프로퍼티로 확인 가능
  • 각각 8비트, 16비트, 32비트, 64비트 형태가 있다.
    → 시스템 아키텍쳐가 몇비트냐에 따라 달라진다.
  • Int의 최댓값 이상 UInt의 최댓값 미만을 사용하는 경우가 아니라면 Int를 사용하는 것이 바람직하다.

Int

+,- 부호를 포함하는 정수

Int   : -9223372036854775808 ~ 9223372036854775807
Int8  : -128 ~ 127
Int16 : -32768 ~ 32767
Int32 : -2147483648 ~ 2147483647
Int64 : -9223372036854775808 ~ 9223372036854775807

UInt

  • 부호를 포함하지 않는 0을 포함하는 양의 정수
UInt   : 0 ~ 18446744073709551615
UInt8  : 0 ~ 255
UInt16 : 0 ~ 65535
UInt32 : 0 ~ 4294967295
UInt64 : 0 ~ 18446744073709551615

Bool

  • 참(true) 또는 거짓(false)의 값만 가진다.
  • .toggle() 이용해 값 반전

Float, Double

  • 부동소수점을 사용하는 실수로 부동소수 타입이라고도 한다.
  • 정수 타입보다 훨씬 넓은 범위의 수를 표현할 수 있다.

스위프트에는 32비트의 Float, 64비트의 Double이 있다.

var floatValue: Float = 1234567890.1 // 1.234568e+09
// 10진수로 표현할 수 있는 값을 넘어 지수로 표현됨

var doubleValue: Double = 1234567890.1 // 1234567890.1

Character

  • 말그대로 문자를 의미, 단 하나의 문자
  • Swift는 유니코드 9문자를 사용하기 때문에 코드에 이모티콘과 한글을 사용할 수 있다.

String

  • 문자의 나열, 문자열
  • Character와 마찬가지로 유니코드 9문자 사용
  • 값의 앞뒤에 큰따옴표 사용하여 표현
// 연산자를 통한 문자열 결합
let hello: String = "Hello"
let toma: String = "Toma"
var greeting: String = hello + " " + Toma + "!" // Hello Yukyung!

// 연산자를 통한 문자열 비교
var isSameString: Bool = false
isSameString = hello == "Hello" //true

// 메서드를 통한 접두어, 접미어 확인
hello.hasPrefix("He") // true
hello.hasPrefix("HE") // false
hello.hasSuffix("He") // false

// 메서드를 통한 대소문자 변환
hello.uppercased() // HELLO
hello.lowarcased() // hello

// 프로퍼티를 통한 빈 문자열 확인
hello.isEmpty // false
hello = ""
hello.isEmpty // true

// 프로퍼티를 이용해 문자열 길이 확인
hello.count // 0
toma.count // 6

특수문자(제어문자)

자주 쓰는 특수문자
\n줄바꿈 문자
\문자열 내에서 백슬래시
\”문자열 내에서 큰따옴표
\t탭 눌렀을 때와 같은 효과
\0문자열이 끝났음을 알리는 null 문자

Any, AnyObject, Nil

Any

스위프트의 모든 데이터 타입을 사용할 수 있음

var someVar: Any = "toma" // 문자열
someVar = 50 // 정수
someVar = 100.1 // 실수

AnyObject

  • Any보다는 조금 한정적인 의미
  • 클래스의 인스턴스만 할당할 수 있음

Nil

  • 특정 타입이 아닌 없음을 나타내는 스위프트의 키워드
  • 변수 또는 상수가 nil인 경우 접근하면 잘못된 메모리 접근으로 런타임 오류 발생

타입에 엄격한 스위프트 특성상 Any 또는 AnyObject를 사용하면 매번 타입 확인 및 변환을 해줘야하는 불편함이 있다.
또한 예기치 못한 요류의 위험이 증가한다.
Any와 AnyObject는 될 수 있으면 사용하지 않는 편이 좋다


profile
Don't think, just do 🎸

0개의 댓글