true와 false 만을 값으로 가지는 타입
var someBool: Bool = true
someBool = false
// 만약 someBool = 0이나 1 을 사용하면 컴파일 오류발생
Int
정수 타입, 현재는 기본적으로 64비트
var someInt: Int = -100
// someInt = 100.1 처럼 정수형이 아니면 컴파일 오류발생
UInt
양의 정수 타입, 현재는 기본적으로 64비트 양의 정수형
var someUInt: UInt = 100
// someUInt = -100 음의 정수로 컴파일 오류발생
// someUInt = someInt // 컴파일 오류발생
Float
실수 타입, 32비트 부동소수형
var someFloat: Float = 3.14
someFloat = 3
Double
실수타입, 64비트 부동소수형
var someDouble: Double = 3.14
Character
문자 타입, 유니코드 사용, 큰따옴표("")사용
var someCharacter: Character = "😀"
someCharacter = "👭"
someCharacter = "가"
someCharacter = "A"
// someCharacter = "하하하" 컴파일 오류발생, String으로 해주어야 함
String
문자열 타입, 유니코드 사용, 큰따옴표("")사용
var someString: String = "하하하 ? "
someString = someString + "웃으면 복이와요"
여러줄 문자열은 큰따옴표 세 개 사용
someString = """
여러줄 문자열을
사용할 수 있습니다.
첫 줄에 겹따옴표 세 개,
마지막 줄에 겹따옴표 세 개를
사용하면 됩니다.
"""
someString = """
겹따옴표 세 개인 줄(첫줄, 끝줄)에서
줄 바꿈을 하지 않으면 오류가 발생합니다.
"""
Swift의 모든 타입을 지칭하는 키워드
var someAny: Any = 100
someAny = 123.12
Any 타입에 Double 자료를 넣어두었더라도 Any는 Double 타입이 아니기 때문에 할당할 수 없음
=> 명시적으로 타입변환 필요
let someDouble: Double = someAny // 컴파일 오류발생
모든 클래스 타입을 지칭하는 프로토콜
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
없음을 의미하는 키워드
다른 언어의 NULL, Null, null 등과 유사한 표현
멤버가 순서(index)를 가진 리스트 형태의 컬렉션 타입
선언)
var integers: Array<Int> = Array<Int>()
활용)
integers.append(1)
integers.append(100)
//integers.append(101.1) Int 타입이 아니므로 Array에 추가할 수 없음
print(integers) // [1, 100]
// 멤버 포함 여부 확인
print(integers.contains(100)) // true
print(integers.contains(99)) // false
// 멤버 교체
integers[0] = 99
// 멤버 삭제
integers.remove(at: 0)
integers.removeLast()
integers.removeAll()
// 멤버 수 확인
print(integers.count)
// 인덱스를 벗어나 접근하려면 익셉션 런타임 오류발생
//integers[0]
let을 사용해 Array를 선언하면 불변 Array가 됨
let immutableArray = [1, 2, 3]
//immutableArray.append(4)
//immutableArray.removeAll()
수정이 불가능한 Arry이므로 멤버를 추가하거나 삭제할 수 없음
키와 값의 쌍으로 이루어진 컬렉션 타입
선언)
var anyDictionary: Dictionary<String, Any> = [String: Any]()
활용)
// 키에 해당하는 값 할당
anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100
print(anyDictionary) // ["someKey": "value", "anotherKey": 100]
// 키에 해당하는 값 변경
anyDictionary["someKey"] = "dictionary"
print(anyDictionary) // ["someKey": "dictionary", "anotherKey": 100]
// 키에 해당하는 값 제거
anyDictionary.removeValue(forKey: "anotherKey")
anyDictionary["someKey"] = nil
print(anyDictionary)
let을 사용하면 불변 Dictionary가 됨
let emptyDictionary: [String: String] = [:]
let initalizedDictionary: [String: String] = ["name": "yagom", "gender": "male"]
//emptyDictionary["key"] = "value" // 불변 Dictionary이므로 값 변경 불가
순서가 없고 멤버가 유일한 것을 보장하는 컬렉션 타입
선언)
var integerSet: Set<Int> = Set<Int>()
활용)
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]
// 합집합
let union: Set<Int> = setA.union(setB)
print(union) // [2, 4, 5, 6, 7, 3, 1]
// 합집합 오름차순 정렬
let sortedUnion: [Int] = union.sorted()
print(sortedUnion) // [1, 2, 3, 4, 5, 6, 7]
// 교집합
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [5, 3, 4]
// 차집합
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting) // [2, 1]
다음 중 오류가 발생하는 코드를 모두 선택하세요
답 : let numberThree: UInt = -123, let character: Character = 'A'
다음 중 스위프트에서 없음을 나타내는 키워드를 고르세요
답 : nil
다음 중 오류가 발생하는 코드를 모두 선택하세요
답 : var arrayThree: [Int] = [Int], var dictionaryOne: Dictionary = Dictionary()