2021. 1. 7. 01:04ใ๐ง๐ป๐ป iOS ๊ฐ๋ฐ/Swift
ํด๋น ๊ธ์ ์ผ๊ณฐ๋์ ์ค์ํํธ ๊ฐ์์ ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
์ ๋ฒ ํฌ์คํ ์์๋ Swift์ 7๊ฐ์ง ๊ธฐ๋ณธ ๋ฐ์ดํฐํ์ ์ ๋ค๋ค์์ฃ ? ์ด๋ฒ์๋ ์ปฌ๋ ์ ํ์ ์ Array์ ๋ํด์ ๊ฐ์ด ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค!
Swift์๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ปฌ๋ ์ ํ์ ์ ์ ๊ณตํฉ๋๋ค. ์ปฌ๋ ์ ํ์ ์๋ Array (๋ฐฐ์ด), Dictionary (๋์ ๋๋ฆฌ), Set (์ธํธ)๊ฐ ์กด์ฌํฉ๋๋ค.
1. Array ์ ํน์ง
Swift์ ๋ฐฐ์ด์ ํ์์ ๋ฐ๋ผ ์๋์ผ๋ก ๊ทธ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ธฐ ๋๋ฌธ์ ์์์ ์ฝ์ , ์ญ์ ๊ฐ ์์ ๋กญ์ต๋๋ค. C์ธ์ด์ ๋ฐฐ์ด ์ฒ๋ผ ํ๋ฒ ์ ์ธํ๋ฉด ๊ทธ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋๋ ๊ฒ์ด ์๋์ฃ . ๊ทธ๋์ C์ธ์ด ์ฒ๋ผ ์ธ๋ฑ์ค๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. let ํค์๋๋ฅผ ์ด์ฉํ์ฌ ์์๋ก ์ ์ธํ๋ฉด ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๋ฐฐ์ด์ด ๋๊ณ var ํค์๋๋ฅผ ์ด์ฉํ์ฌ ๋ณ์๋ก ์ ์ธํ๋ฉด ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐฐ์ด๋ก ์ ์ธ๋ฉ๋๋ค. ๊ทธ๋ผ ํจ๊ป Array ํ์ ์ ์ ์ธ๊ณผ ๊ฐ๋จํ ํ๋กํผํฐ, ๋ฉ์๋์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
2. Array ํ์ ์ ์ ์ธ
var [๋ฐฐ์ด ์ด๋ฆ]: Array<ํ์
> = Array<ํ์
>() ์ ๊ธฐ๋ณธ ํํ๋ฅผ ๊ฐ์ง๋๋ค. Swift ์์๋ ๋ค์ํ ๋์ผํํ์ ํ๋ฝํฉ๋๋ค.
// Array ์ ์ธ
var numbers: Array<Int> = Array<Int>()
// ๋์ผ ํํ
// var numbers: Array<Int> = [Int]()
// var numbers: Array<Int> = []
// var numbers: [Int] = [Int]()
// var numbers: [Int] = Array<Int>()
// var numbers: [Int] = []
// var numbers = [Int]()
// ๋ค์ํ ํํ์ผ๋ก ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
3. Array ํ์ ์ ํ๋กํผํฐ
- isEmpty : ๋น์ด์๋ ๋ฐฐ์ด์ธ์ง ์๋์ง Bool ํ์
์ ๋ฐํํฉ๋๋ค.
- count : ๋ฐฐ์ด์ ๋ช ๊ฐ์ ์์๊ฐ ์๋์ง ์ ์ ์์ต๋๋ค.
- first : ๋งจ ์ฒ์ ์์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- last : ๋งจ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
// Array Property
var evenNums: Array<Int> = [2,4,4,6,8,10]
var oddNums: Array<Int> = []
print(evenNums.count) //6
print(oddNums.count) //0
print(evenNums.isEmpty) //false
print(oddNums.isEmpty) //true
print(evenNums[3]) // 6 : ์ธ๋ฑ์ค๋ก ์ ๊ทผ ๊ฐ๋ฅ.
print("์ง์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์: \(evenNums.first) , ๋ง์ง๋ง ์์: \(evenNums.last) ")
๋ง์ง๋ง ์ถ๋ ฅ๋ฌธ์ Optional์ ๋ํด์๋ ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค!
4. Array ํ์ ์ ๋ฉ์๋
- insert( _: at: ) : ์ค๊ฐ์ ์์๋ฅผ ์ฝ์
ํฉ๋๋ค.
- remove( _: ) : ์์๋ฅผ ์ญ์ ํ๊ณ ํด๋น ์์๋ฅผ ๋ฐํํฉ๋๋ค.
- append() : ๋ฐฐ์ด์ ๋ง์ง๋ง์ ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค, contentsOf ๋ ์ด๋ธ์ ์ด์ฉํ์ฌ ์ฌ๋ฌ ์์๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
- removeFirst(): ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ญ์ ํ๊ณ ํด๋น ์์๋ฅผ ๋ฐํ ํฉ๋๋ค.
- removeLast(): ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํ๊ณ ํด๋น ์์๋ฅผ ๋ฐํํฉ๋๋ค.
- firstIndex(of: ): ํด๋น ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ฉฐ ์ค๋ณต๋ ์์๊ฐ ์์ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒฌ๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
// Array Method
var names: Array<String> = ["Sung-Ho","Kyeong-Tae","Sung-Kyu"]
names.insert("Jin-Han", at: 1)
for name in names {
print(name)
}
names.append("Hyeon-Suk")
names.append(contentsOf: ["Ji-Rap","Sang-Hoon"])
names.insert("extramilejin", at: 0)
print(names.count)
print(names.firstIndex(of: "Kyeong-Tae"))
names.remove(at: 5)
let lastName: String = names.removeLast()
let firstName: String = names.removeFirst()
print(firstName)
print(lastName)
5. ๋ง๋ฌด๋ฆฌ
๋ค์ ํฌ์คํ ์์ ๋๋จธ์ง ์ปฌ๋ ์ ํ์ ์ธ Dictionary์ Set์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค!