안녕하세요! toma입니다~
야곰님의 스위프트 프로그래밍을 읽으면서 노션에 정리해둔 것들을 벨로그에 조금씩 옮겨보려고 합니다!
- 정수 데이터 타입이다.
- 최댓값과 최솟값은 각각
max
,min
프로퍼티로 확인 가능- 각각 8비트, 16비트, 32비트, 64비트 형태가 있다.
→ 시스템 아키텍쳐가 몇비트냐에 따라 달라진다.- Int의 최댓값 이상 UInt의 최댓값 미만을 사용하는 경우가 아니라면 Int를 사용하는 것이 바람직하다.
+,- 부호를 포함하는 정수
Int : -9223372036854775808 ~ 9223372036854775807
Int8 : -128 ~ 127
Int16 : -32768 ~ 32767
Int32 : -2147483648 ~ 2147483647
Int64 : -9223372036854775808 ~ 9223372036854775807
UInt : 0 ~ 18446744073709551615
UInt8 : 0 ~ 255
UInt16 : 0 ~ 65535
UInt32 : 0 ~ 4294967295
UInt64 : 0 ~ 18446744073709551615
- 참(true) 또는 거짓(false)의 값만 가진다.
.toggle()
이용해 값 반전
- 부동소수점을 사용하는 실수로 부동소수 타입이라고도 한다.
- 정수 타입보다 훨씬 넓은 범위의 수를 표현할 수 있다.
스위프트에는 32비트의 Float, 64비트의 Double이 있다.
var floatValue: Float = 1234567890.1 // 1.234568e+09
// 10진수로 표현할 수 있는 값을 넘어 지수로 표현됨
var doubleValue: Double = 1234567890.1 // 1234567890.1
- 말그대로 문자를 의미, 단 하나의 문자
- Swift는 유니코드 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 문자 |
스위프트의 모든 데이터 타입을 사용할 수 있음
var someVar: Any = "toma" // 문자열
someVar = 50 // 정수
someVar = 100.1 // 실수
- Any보다는 조금 한정적인 의미
- 클래스의 인스턴스만 할당할 수 있음
- 특정 타입이 아닌
없음
을 나타내는 스위프트의 키워드- 변수 또는 상수가 nil인 경우 접근하면 잘못된 메모리 접근으로 런타임 오류 발생
타입에 엄격한 스위프트 특성상 Any
또는 AnyObject
를 사용하면 매번 타입 확인 및 변환을 해줘야하는 불편함이 있다.
또한 예기치 못한 요류의 위험이 증가한다.
→ Any와 AnyObject는 될 수 있으면 사용하지 않는 편이 좋다