728x90
반응형
[ 상수와 변수 ]
- 상수(변경 가능) 선언 키워드 let
- 변수(변경 불가능) 선언 키워드 var
# 상수
let 이름: 타입 = 값
# 변수
var 이름: 타입 = 값
# 상수, 변수 모두 차후 할당 가능
var nickName: String
nickName = "kybeen"
값의 타입이 명확하다면 타입은 생략 가능한데 굳이?? 나는 확실한게 좋기 때문에 이런거 생략 안한다.
※ 참고로 Swift에서는 이름 규칙으로 CamelCase 방식을 사용한다.
- 함수, 메서드, 변수, 상수 등 : 소문자로 시작
- 클래스, 구조체, 열거형 등 타입 이름 : 대문자로 시작
[ 기본 데이터 타입 ]
- Bool : 부울 (false, true만 되고 0과1은 안됨)
- Int : 64bit 정수형 (양수, 음수, 0)
- UInt : 부호가 없는 양의 정수
- Float : 실수형 (정수타입 넣기 가능)
- Double : Float타입 값 넣는거 안됨
- Character : 문자(한글자)
- String : 문자열 (Character 타입 값 넣는거 안됨)
Swift는 데이터 타입에 매우 엄격하기 때문에 확실하게 구분하여 사용하자 !!
각각 Character와 String 타입인 두 변수를 더하면 오류가 난다.
[ Any, AnyObject, nil ]
- Any : Swift의 모든 타입을 지칭하는 키워드 (어떤 타입도 수용 가능)
- AnyObject : 모든 클래스 타입을 지칭하는 프로토콜
- nil : 없음을 의미하는 키워드 (== null)
Any 타입의 변수에는 어떤 값이든 할당 가능하다. (하지만 빈 값인 nil은 할당할 수 X)
[ 컬렉션 타입 - Array, Dictionary, Set ]
- Array : 순서가 있는 리스트 컬렉션
- Dictionary : 키:값의 쌍으로 이루어진 컬렉션
- Set : 순서가 없고, 멤버가 유일한 컬렉션
[ Array ]
// 빈 Int Array 생성
var integers: Array<Int> = Array<Int>()
//var integers: [Int] = [Int]() ==> 동일 표현
//var integers: [Int] = [] ==> 동일 표현
//var integers: [Int] = [1, 2, 3, 4, 5] ==> 바로 값 초기화
// 요소 추가
integers.append(1)
integers.append(2)
integers.append(3)
integers.append(4)
integers.append(5)
// 값 포함 여부 확인
integers.contains(0)
integers.contains(1)
// 값 제거
integers.remove(at: 0) // 인덱스
integers.removeLast()
integers.removeFirst()
integers.removeAll()
// 개수 세기
integers.count
[ Dictionary ]
// Key가 String 타입이고, Value가 Any인 빈 Dictionary 생성
var anyDictionary: Dictionary<String, Any> = [String: Any]()
// var anyDictionary: [String: Any] = [:] ==> 동일 표현
// 키:값 쌍 추가
anyDictionary["key1"] = "value1"
anyDictionary["key2"] = 100
// 특정 key에 해당하는 값 제거
anyDictionary.removeValue(forKey: "key2")
// nil값 넣어주는 것도 제거와 같음
anyDictionary["key1"] = nil
[ Set ]
// 빈 Int Set 생성
var integerSet: Set<Int> = Set<Int>()
var setA: Set<String> = ["A", "B", "C", "C"]
// 값 추가
integerSet.insert(1)
integerSet.insert(2)
integerSet.insert(3)
integerSet.insert(3)
// 값 포함 여부 확인
integerSet.contains(1)
integerSet.contains(0)
// 값 제거
integerSet.remove(2)
integerSet.removeFirst()
// 개수 세기
integerSet.count
// 집합 연산
let set1: Set<Int> = [10, 20, 30, 30]
let set2: Set<Int> = [20, 30, 40]
let union1: Set<Int> = set1.union(set2) // 합집합
let sortedUnion: [Int] = union1.sorted() // 정렬된 Array로 만들어주기
let intersection: Set<Int> = set1.intersection(set2) // 교집합
let subtracting: Set<Int> = set1.subtracting(set2) // 차집합
728x90
반응형
'Swift' 카테고리의 다른 글
[ Swift ] Swift 기초 문법5 - 구조체, 클래스 (0) | 2023.01.29 |
---|---|
[ Swift ] Swift 기초 문법4 - 옵셔널 (0) | 2023.01.28 |
[ Swift ] Swift 기초 문법3 - 조건문, 반복문 (0) | 2023.01.28 |
[ Swift ] Swift 기초 문법2 - 함수 (0) | 2023.01.28 |
[ Xcode ] Xcode에서 PlayGround 사용하기 (0) | 2023.01.28 |