Collection types
์ปฌ๋ ์ ํ์ ์ด๋ ์ค์ํํธ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ค์ ๋ฌถ์์ ์๋ฏธํ๋ค. ์ค์ํํธ์์๋ ์ธ๊ฐ์ง์ ์ฝ๋ ์ ํ์ ์ ์ฌ์ฉํ๋๋ฐ, Array, dictionary, Set ์ธ๊ฐ์ง๋ก ๋๋์ด ๋ณผ ์ ์๋ค.
Array (๋ฐฐ์ด)
๋ฐ์ดํฐ ํ์
์ ๊ฐ๋ค์ ์์๋๋ก ์ง์ ํ๋ ๋ฆฌ์คํธ์ด๋ค.
โถ Array ํ์ฑํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ
๊ฐ์ฅ ์์ด์ ์ธ? ๋ฐฉ๋ฒ์ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋ณดํต ์ถ์ฝ๋ ํํ์ธ ๋, ์ธ๋ฒ์งธ ํํ๋ก ๋ฐฐ์ด์ ์์ฑํ๋ค.
// ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ : ๋น Int array ํ์ฑํ๊ธฐ
var numbers: Array<Int> = Array<Int>()
// ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ : ๋น String array ํ์ฑํ๊ธฐ
var names = [String]()
// ์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ : ๋น String array ํ์ฑํ๊ธฐ
var names: [String] = []
โถ Array ์ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ (append)
append๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ๋งจ ๋ง์ง๋ง์ ๊ฐ์ ์ถ๊ฐํ ์ ์๋ค.
// ๊ฐ์ ๋งจ ๋ง์ง๋ง์ ์ถ๊ฐํ๊ธฐ : append
numbers.append(1)
nubmers.append(2)
numbers.append(3)
//prints [1, 2, 3]
โถ Array ์ค๊ฐ์ง์ ์ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ (insert)
insert ๋ฅผ ํ์ฉํ์ฌ ๋ฐฐ์ด์ ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค. ๋ฃ์ผ๋ ค๋ ๊ฐ์ ์ ๊ณ , at ๋ค์ ์์น๋ฅผ ์ ์ด์ฃผ๋ฉด ๋๋ค.
// ๋ฐฐ์ด ์ค๊ฐ์ ๊ฐ ์ฝ์
ํ๊ธฐ insert
numbers.insert(4, at: 2) //2๋ฒ์๋ฆฌ์ 4๋ฅผ ์ถ๊ฐํด๋ผ
// prints [1, 2, 4, 3]
โถ Array์ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๊ธฐ
ํ์ด์ฌ ์ธ์ด์ ๋์ผํ๊ฒ 0๋ถํฐ ์์ํ๊ณ , ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด์ ์ ๊ทผํ ์ ์๋ค.
// ์ ๊ทผํ๊ธฐ index
numbers[0] //prints : 1
numbers[2] //prints : 4
โถ Array์ ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ (remove)
remove๋ก ์์น๋ฅผ ์ ํ์ฌ ์ํ๋ ๊ฐ์ ์ญ์ ํ ์ ์๋ค.
// ์ํ๋ ์์น์ ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
numbers.remove(at: 0)
//prints [2,4,3]
Dictionary (๋์ ๋๋ฆฌ)
์์ ์์ด ํค(key)์ ๊ฐ(Value) ํ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ์ ์ด๋ค.
โถ Dictionary ์ ์ธํ๊ธฐ
// ๋น ๋์
๋๋ฆฌ ์ ์ธ (๊บฝ์ ์์๋ key, value ์์๋๋ก ์ง์ )
var dic: Dictionary<String, Int> = Dictionary<String, Int>()
//์ถ์ฝ์ ํํ (๋ณดํต์ด๋ ๊ฒ ๋ง์ด ์)
var dic: [String: Int] = [:]
//๊ฐ์ด ์๋ ํํ์ dic์ ์ธ
var dic: [String: Int] = ["didu": 1]
โถ Dictionary์ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ
๊ฐ์ ๋ฃ์ ๋์ ๋๋ฆฌ์ ๋ฐ์ดํฐ ํ์ ์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ์์ ๋งํ๋ฏ์ด, ๋์ ๋๋ฆฌ๋ ์์๋ ์ ์ฅํ์ง ์๋๋ค.
dic["์ฒ ์"] = 2
dic["์ํฌ"] = 5
dic
// prints ["์ฒ ์":2, "์ํฌ":5, "didu":1]
// ์์ ์์ด ์ ์ฅ๋ ๊ฒ์ ๋ณผ ์ ์์.
โถ Dictionary์์ value ๋ณ๊ฒฝํ๊ธฐ
key์ ํด๋นํ๋ Value ๊ฐ์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
dic["didu"] = 6
dic
//prints ["์ฒ ์":2, "์ํฌ":5, "didu":6]
โถ Dictionary์์ ๊ฐ (value) ์ ๊ฑฐํ๊ธฐ : removeValue(forKey:_)
dic.removeValue(forKey: "์ํฌ")
Set (์งํฉ)
๊ฐ์ ๋ฐ์ดํฐ ๊ฐ์ ์์ ์์ด ์ ์ฅํ๋ ๋ฆฌ์คํธ์ด๋ค. ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐ์ด๊ณผ ๋ค๋ฅธ์ ์, ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์๋๋ค๋ ์ ์ด๊ณ , ์์๊ฐ ์๋ค๋ ์ ์ด๋ค! (์์น ์ธ๋ฑ์ค no)
โถ Set ์ ์ธํ๊ธฐ
// Set๋ ์ถ์ฝํ์ด ์๋ค.
var set: Set = Set<Int>()
โถ Set์ ๊ฐ ์ถ๊ฐํ๊ธฐ : insert
set.insert(10)
set.insert(20)
set.insert(30)
set.insert(30)
print(set) //prints (30, 20, 10)
๊ฐ์ ๋ฃ์ ์์๋๋ก ์ง์ ๋์ง ์์ผ๋ฉฐ 30์ ๋๋ฒ ๋ฃ์๋๋ฐ ํ๋ฒ๋ง ์ถ๋ ฅ๋๋ค. ์ด์ฒ๋ผ set์ ๋ค์ํ๋ฒ, ๊ฐ์กฐํ์ง๋ง ์์์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
โถ Set์์ ๊ฐ ์ญ์ ํ๊ธฐ : remove
set๋ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ผ๋ก ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
set.remove(20)
print(set) //prints (10, 30)
'Swift > Swift BASIC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์กฐ๊ฑด๋ฌธ (if, switch ๊ตฌ๋ฌธ) (0) | 2022.01.14 |
---|---|
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ํจ์ ์ ์ (0) | 2022.01.12 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ๋ฐ์ดํฐ ํ์ ์ข ๋ฅ (0) | 2022.01.11 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์์์ ๋ณ์ ์ ์ธํ๊ธฐ (let, var ์ฐจ์ด์ ) (0) | 2022.01.11 |
[Swift] Swift ๋? (์ด๋ผ๊ณ ์ฐ๊ณ 2022๋ ๋ชฉํ๋ผ๊ณ ํ๋ค) (0) | 2022.01.02 |