- 모든 데이터 타입의 이름은 첫 글자를 대문자로 입력한다.
- 모든 데이터 타입(Int, Float, Double, Bool, String, Array, Dictionary, Set 등)은 모두 Struct (구조체)를 기반으로 구현되어 있다.
(쉽게 설명하자면, 우리가 숫자를 표현하고 싶을 때 Int 라고 입력해서 바로 사용할 수 있도록 Swift에 미리 구조체 라는 것으로 만들어져 있다는 의미)
<-> Reference Type : class, function, closure 등
- 스위프트는 데이터 타입 엄격하게 관리하므로 암시적으로 이루어지는 데이터 타입의 변형으로부터 일어날 수 있는 예기치 않은 결과를 일으키는 경우를 방지해야 한다.
Bool
- true 와 false 만을 값으로 가지는 타입
var someBool: Bool = true
someBool = false
// someBool = 0 // 컴파일 오류발생
// someBool = 1 // 컴파일 오류발생
Int , UInt
- Int : 정수 타입. 현재는 기본적으로 64비트 정수형.
var someInt: Int = -100
// someInt = 100.1 // 컴파일 오류발생
-UInt : 양의 정수 타입. 현재는 기본적으로 64비트 양의 정수형
var someUInt: UInt = 100
// someUInt = -100 // 컴파일 오류발생
// someUInt = someInt // 컴파일 오류발생
Float, Double
-Float : 실수 타입. 32비트 부동소수형
var someFloat: Float = 3.14
someFloat = 3
-Double : 실수 타입. 64비트 부동소수형
var someDouble: Double = 3.14
someDouble = 3
// someDouble = someFloat // 컴파일 오류발생
Character, String
- Character : 문자 타입. 유니코드 사용. 큰따옴표("") 사용.
var someCharacter: Character = "🇰🇷"
someCharacter = "😄"
someCharacter = "가"
someCharacter = "A"
// someCharacter = "하하하" // 컴파일 오류발생
print(someCharacter)
-String : 문자열 타입. 유니코드 사용. 큰따옴표("") 사용.
var someString: String = "하하하 😄 "
someString = someString + "웃으면 복이와요"
print(someString)
// someString = someCharacter // 컴파일 오류발생
여러줄 문자열은 큰따옴표 세 개 사용.
someString = """
여러줄 문자열을
사용할 수 있습니다.
첫 줄에 겹따옴표 세 개,
마지막 줄에 겹따옴표 세 개를
사용하면 됩니다.
"""
someString = """
겹따옴표 세 개인 줄(첫줄, 끝줄)에서
줄 바꿈을 하지 않으면 오류가 발생합니다.
"""
/*
someString = """오류발생
오류발생"""
*/
생각해보기
let integer = 100 //정수형 Int Type
let floatingPoint = 12.34 // 실수형 Double Type
let apple = "A" // String
print(type(of: integer)) //Int
print(type(of: floatingPoint)) // Double
print(type(of: apple)) //String
Any
-swift의 모든 타입을 지칭하는 키워드
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
Any 타입에 Double 자료를 넣어두었더라도 Any는 Double 타입이 아니기 때문에 할당할 수 없습니다.
명시적으로 타입을 변환해 주어야 합니다.
타입 변환은 차후에~
let someDouble: Double = someAny // 컴파일 오류발생
AnyObject
모든 클래스 타입을 지칭하는 프로토콜(클래스와 프로토콜은 차후에~)
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없습니다.
someAnyObject = 123.12 // 컴파일 오류발생
nil
없음을 의미하는 키워드
다른 언어의 NULL, Null, null 등과 유사한 표현입니다.
아래 코드에서 someAny는 Any타입이고, someAnyObject는 AnyObject타입 이기 때문에
nil을 할당할 수 없습니다.
nil다루기는 옵셔널에서~
someAny = nil // 컴파일 오류발생
someAnyObject = nil // 컴파일 오류발생
도움주신 분들!
https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
The Basics — The Swift Programming Language (Swift 5.7)
The Basics Swift is a new programming language for iOS, macOS, watchOS, and tvOS app development. Nonetheless, many parts of Swift will be familiar from your experience of developing in C and Objective-C. Swift provides its own versions of all fundamental
docs.swift.org
👩🏻💻 테크연
lxxyeon.tistory.com
yagom's blog
야곰의 프로그래밍 블로그입니다. iOS, Swift, Objective-C, C에 대해 이야기합니다.
blog.yagom.net
'iOS > Swift문법' 카테고리의 다른 글
Swift 기본문법) 특수문자 출력 (0) | 2023.06.17 |
---|---|
Swift 기본문법) 컬렉션 타입 (0) | 2022.09.05 |
Swift 기본문법) 상수와 변수 (1) | 2022.08.30 |
Swift 기본문법) 이름짓기, 콘솔로그, 문자열보간법 (0) | 2022.08.22 |
Swift 기본문법) 시작하며 (0) | 2022.08.22 |