์๋ ํ์ธ์ ์ ์ธ์ ๋๋ค!
์ค๋์ enumerated()์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋๋ฐ์, ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด
enumerated()๋ฅผ ์ฌ์ฉํด ๋ ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ ํ์ด๊ฐ ๋ง์์ enumerated() ํจ์๊ฐ ๋ฌด์์ธ์ง,
๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ํ์ฉํ๋์ง๊น์ง ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ์ ๋๋ก ์ ๋ฆฌํด๋๊ณ ์ ์จ๋จน์ด๋ด ์๋ค!
enumerated()
enumerate๋ ์ฌ์ ์ ์ผ๋ก ์ด๊ฑฐํ๋ค, ์ธ๋ค ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ฐ์, Swift์์๋ ์ด๋ค ์๋ฏธ๋ก ์ฌ์ฉ๋๋์ง ๋จผ์ ๊ณต์ ๋ฌธ์๋ฅผ ํตํด enumerated()์ ์ ์๋ถํฐ ์ดํด๋ณด๊ฒ ์ต๋๋ค!
(n, x)๋ก ์ด๋ฃจ์ด์ง ์์ ์ํ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์ฌ๊ธฐ์ n์ 0๋ถํฐ ์์ํ๋ ์ฐ์์ ์ธ ์ ์๋ฅผ ๋ํ๋ด๊ณ x๋ ์ํ์ค์ ์์๋ฅผ ๋ํ๋ ๋๋ค.
์ ๋๋ก ํด์ํ ์ ์์ ๊ฒ ๊ฐ์๋ฐ์, ์์ฝ์ ํด๋ณด์๋ฉด enumerated() ํจ์๋ return ํ์ ์ด ํํ ํ์์ธ ์ธ์คํด์ค ๋ฉ์๋์ธ๋ฐ, ํํ์์ ์์ ์์นํ๋ ๊ฐ์ 0๋ถํฐ ์์ํ๋ integer ๊ฐ์ด๊ณ , ๋ค์ ์์นํ๋ ๊ฐ์ ์ํ์ค์ ์์์ ๋๋ค.
enumerated()์ ํ์ฉ
๊ณต์ ๋ฌธ์์ enumerated()๋ฅผ ํ์ฉํ ์์ ์ฝ๋๋ ๋์์์ต๋๋ค!
for (n, c) in "Swift".enumerated() {
print("\(n): '\(c)'")
}
// Prints "0: 'S'"
// Prints "1: 'w'"
// Prints "2: 'i'"
// Prints "3: 'f'"
// Prints "4: 't'"
์์ ์์์ฝ๋๋ฅผ ๋ณด๋ฉด enumerated()๊ฐ ๋ฐํํ๋ ํํ์ ์ด๋ค ๊ฐ์ ๋ด๊ณ ์๋์ง ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์์ ๊ฒ ๊ฐ์๋ฐ์,
๋ฐ๋ณต๋ฌธ ์์์ ํ๋ฆฐํธ๋ฌธ์ ํตํด ํํ์ ๊ฐ์ ์ฐจ๋ก๋ก ์ฐ์ด๋ณด๋ฉด "Swift"๋ผ๋ ๋ฌธ์์ด์ด ๊ฐ ๋ฌธ์์ ์์น์ ํจ๊ป ์์๋๋ก ์ด๊ฑฐ๋๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ ๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ๋ฌธ์์ด์ ์ด๋ฃจ๊ณ ์๋ ๊ฐ ๋ฌธ์์ ์ธ๋ฑ์ค ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด Array๋ก ๋ณํํด์ ๋ง์ด ์ฌ์ฉํ์๋๋ฐ์, enumerated() ํจ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Arrayํ์ผ๋ก ๋ณํํ์ง ์๊ณ ๋ ์ฝ๊ฒ ๊ฐ ๋ฌธ์์ ์์น๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค!
์ปฌ๋ ์ ํ์ ์์์ ์ฌ์ฉ
Array ์ด์ผ๊ธฐ๊ฐ ๋์์ผ๋ ์ปฌ๋ ์ ํ์ ์์์ ์ฌ์ฉ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค!
Swift์ ์ปฌ๋ ์ ํ์ ์๋ Array, Dictionary, Set์ด ์์ต๋๋ค.
Array
let names: Array = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
for (n, x) in names.enumerated() {
print(n, x)
}
// 0 Sofia
// 1 Camilla
// 2 Martina
// 3 Mateo
// 4 Nicolás
Array์ enumerated()๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌํด๋๋ n๊ฐ์ด index์ ๋์ผํฉ๋๋ค.
Dictionary์ Set
let names: Set = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
let dic: [String: String] = ["a": "A", "b": "B", "c": "C"]
for (n, x) in names.enumerated() {
print(n, x)
}
for (n, x) in dic.enumerated() {
print(n, x.value)
}
// ์์๋ ๋น๋ํ ๋๋ง๋ค ๋ฐ๋
// 0 Mateo
// 1 Nicolás
// 2 Sofia
// 3 Martina
// 4 Camilla
// 0 C
// 1 A
// 2 B
Array์ ๋ฌ๋ฆฌ Dictionary์ Set์๋ ์ ์๋ ์์๊ฐ ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ n์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋๊ฑฐ๋ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ ์ ์๋ ํ์ ์ผ ์ ์์ต๋๋ค.
Dictionary์ Set์ enumerated()๋ฅผ ์ฌ์ฉํ ๋๋ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์ ์ํ๋ฉฐ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
sorted() ํจ์๋ฅผ ํ์ฉํด ์ด๋ค ๊ธฐ์ค์ ๋ฐ๋ฅธ ์์๋ฅผ ๋ถ์ฌํ ๋ค์ ์ฌ์ฉํด๋ ๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ๋ ๋๋ค์!
[์ฐธ๊ณ ์๋ฃ]
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ํ๋กํผํฐ(Properties) - ์ ์ฅ ํ๋กํผํฐ, ์ฐ์ฐ ํ๋กํผํฐ (2) | 2023.04.01 |
---|---|
[Swift] lazy ํค์๋ (0) | 2023.03.18 |
[Swift] ๊ณ ์ฐจํจ์ - map, filter, reduce (1) | 2022.11.29 |
[Swift] ํ์ ์ถ๋ก ๊ณผ ํ์ ์ด๋ ธํ ์ด์ (0) | 2022.07.31 |
[Swift] if let๊ณผ guard let์ ์ฐจ์ด (4) | 2022.03.04 |