Swift/문법
Array / Dictionary / Set
khon98
2021. 3. 1. 21:15
Array
- 같은 타입만 담아야 함
- 순서가 있는 경우, 순서를 알면 유용할 때 Array 사용
// Array
// Array 사용법
//var Array1: [Int] = [1, 2, 3, 4]
//var Array2: Array<Int> = [1, 2, 3, 4]
// Array에 값을 추가 하고 싶을때 append 사용
var Array: [Int] = [2, 4, 6, 8]
Array.append(10)
// 여러 개의 값을 넣을 때
Array += [12, 14, 16]
Array.append(contentsOf: [18, 20])
// Array에 값이 있으면 false 없으면 true
//Array = []
let isEmpty = Array.isEmpty
// element가 몇 개 있는지 알고 싶을 때
Array.count
// 첫 번째 값을 알고 싶을때, 마지막 값을 알고 싶을 때는 last
// 값이 있을수도 있고 없을수도 있기 때문에 옵셔널 타입임
print(Array.first)
let FirstElement = Array.first
if let FirstElement = Array.first {
print("first elements: \(FirstElement)")
}
// 해당 Array의 최소, 최대 값을 알고 싶을 때
Array.min()
Array.max()
// 해당 인덱스의 값을 알고 싶을 때
var firstElement = Array[0]
var secondElement = Array[1]
var tenthElement = Array[9]
let firstThree = Array[0...2]
// 해당하는 값이 있는지 알고 싶은 경우
Array.contains(3)
Array.contains(4)
// 특정 인덱스를 삽입
Array.insert(0, at: 0) // 0을 0번째 인덱스에 삽입
// 특정 인덱스 삭제
Array.remove(at: 0)
Array
// 인덱스 삭제
//Array = []
//Array.removeAll()
// 인덱스 값 변경
Array[0] = -4
Array[1...3] = [-2, 0, 2]
Array
// 인덱스 스왑
Array.swapAt(0, 1)
// 원하는 값이 몇 번째 인덱스에 있는지 알고 싶을 때
for (index, num) in Array.enumerated() {
print("idx:\(index), value:\(num) ")
}
// 앞에서 세 개의 인덱스를 없애는 법, 뒤에서 없애는 법은 dropLast
Array
let FirstThreeRemoveArray = Array.dropFirst(3)
Array
let BackFirstThreeRemoveArray = Array.dropLast(3)
// 앞에서 인덱스를 가져올 때, 뒤에서는 suffix
Array
let firstsecond = Array.prefix(2)
Array
let backfirstsecond = Array.suffix(2)
Dictionary
- Array와 다르게 순서가 없음
- Key와 Value로 이루어짐
// Dictionary 표현
var Score: [String: Int] = ["khon": 100, "khon01": 98]
//var Score: Dictionary<String, Int> = ["khon": 100, "khon01": 98]
if let score = Score["khon"] {
score
} else {
print("없음")
}
Score["khon02"]
// Dictionary를 빈 값으로 만드는 법
//Score = [:]
// Score에 데이터가 있는지 확인, 있으면 false 없으면 true
Score.isEmpty
// Score에 몇 개의 값이 있는지 확인
Score.count
// 데이터 업데이트
Score["khon"] = 95
Score
// 데이터 추가
Score["khon02"] = 97
Score
// 데이터 제거
Score["khon01"] = nil
Score
// key와 value 값 모두 알고 싶을때
for (name, value) in Score {
print("\(name), \(value)")
}
// key 값만 알고 싶을 때
for key in Score.keys {
print(key)
}
print("\n")
// 이름, 직업, 도시에 대한 딕셔너리 생성
var Dic: [String: String] = ["name": "khon", "job": "Student", "city": "seoul" ]
// 도시를 부산으로 데이터 업데이트
Dic["city"] = "busan"
Dic
// 이름과 도시만 출력하는 함수 생성
func printDic(dic:[String: String]) {
if let name = dic["name"], let city = dic["city"] {
print(name, city)
} else {
print("No")
}
}
printDic(dic: Dic)
Set
- 순서가 없음
- 유일한 값을 가지는 타입
- 중복이 없는 유익한 아이템을 관리 할 때, 순서가 중요하지 않을 때 사용
// Set
var Array: Array<Int> = [1, 2, 1, 3]
var Set: Set<Int> = [1, 2, 1, 3] // 중복된 값은 제외하고 출력
Set.isEmpty
Set.count // 중복된 값은 제외
Set.contains(4) // 4는 없으므로 false
Set.contains(3)
Set.insert(5) // 5 추가
Set
Set.remove(1) // 1 제거
Set