
Array
์์๋ฅผ ๊ฐ์ง ๋ฆฌ์คํธ ํํ์ ์ปฌ๋ ์ ํ์
๋ฐฐ์ด ์์ฑ
๊ฐ์ ๋ฐ๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฐ์ด์ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ด ๋ฐฐ์ด์ ์์ฑํ ์ ์์ต๋๋ค.
swift๋ ํ์ ์ถ๋ก ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์์ฑ์ ํน์ ํ์ ์ ์ง์ ํ์ง ์์๋ ๋ฉ๋๋ค.
// ํ์
์ง์ O
let number: [Int] = [1,3,5,2,6,8]
let name: [String] = ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ"]
// ํ์
์ง์ X
let number = [1,3,5,2,6,8]
let name = ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ"]
ํ์ง๋ง ํ์ ์ ๊ผญ ๋ช ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ด๋๋ค
- ๋น ๋ฐฐ์ด ์์ฑ
- ์ฌ๋ฌ ํ์ ๊ฐ์ ๋ฐฐ์ด ์์ฑ
// 1. ๋น ๋ฐฐ์ด ์์ฑ ๋ฐฉ๋ฒ (์๋ ์ธ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ํํ์ ๋ฐฐ์ด์
๋๋ค.)
var color1: [String] = []
var color2 = Array<String>()
var color3 = [String]()
// 2. ์ฌ๋ฌ ํ์
๊ฐ์ ๋ฐฐ์ด
let anyArray: [Any] = [1, 4, "ํผ์นด์ธ", "๋ผ์ด์ธ", 8]
ํฌ๊ธฐ๊ฐ ์ ํด์ง ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ถ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
// ["์ฌ๊ณผ", "์ฌ๊ณผ", "์ฌ๊ณผ", "์ฌ๊ณผ"] ํํ์ ๋ฐฐ์ด์ ๋ง๋๋ ๋ฐฉ๋ฒ
let appleArray = [String](repeating: "์ฌ๊ณผ", count: 4)
let appleArrayToo = Array(repeating: "์ฌ๊ณผ", count: 4)
๋น ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง, ํฌ๊ธฐ๊ฐ ์ ํด์ง ๋ฐฐ์ด๋ ๋ง๋ค ์ ์์ต๋๋ค.
struct Record {
let date, day: String
}
var contentList = Array(repeating: [Record](), count: 8)
print(contentList)
print(type(of: contentList))
print(type(of: contentList[0]))
// [[], [], [], [], [], [], [], []]
// Array<Array<Record>>
// Array<Record>
๋ฐฐ์ด ์ ๊ทผ
๋ฐฐ์ด์ ์์๋ฅผ ๊ฐ๋ ๋ฆฌ์คํธ์ด๊ธฐ ๋๋ฌธ์ index๋ก ์ ๊ทผํ ์ ์์ผ๋ฉฐ
count์ isEmpty๋ฅผ ํตํด ๋ฐฐ์ด ์์์ ๊ฐ์์ ๋น ๋ฐฐ์ด ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
let nums = [1, 100]
print(nums[0]) // 1
print(nums[1]) // 100
print(nums[1]) // Fatal error: Index out of range
print(nums.count) // 2
print(nums.isEmpty) // False
๋ค์ํ ์ธ๋ฑ์ค ์ ๊ทผ๋ฒ
let name = ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ"]
// ๋ฐฐ์ด ๋ด ํน์ ๋ฒ์์ ์์
print(name[0...1]) // ["ํผ์นด์ธ", "๋ผ์ด์ธ"]
// ๋ฐฐ์ด์ ์ฒซ ์ธ๋ฑ์ค์ ํด๋นํ๋ ์์
print(name.startIndex) // 0
print(name[name.startIndex]) // ํผ์นด์ธ
print(name.first)
// ๋ฐฐ์ด์ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ํด๋นํ๋ ์์
print(name.endIndex) // 5
print(name[name.endIndex]) // Fatal error: Index out of range
print(name[name.index(before: name.endIndex)]) // ํฝ๋๋ฆฌ
// ๋ฐฐ์ด์ ๋งจ ์, ๋ค ์์ ํ์ง๋ง optional
print(name.first) // Optional("ํผ์นด์ธ")
print(name.last) // Optional("ํฝ๋๋ฆฌ")
๋ฐฐ์ด ์์ ๋ฐ ์ฝ์
๋ฐฐ์ด์ด var๋ก ์ ์ธ๋์ด ์๋ ๊ฒฝ์ฐ, index๋ก ์ ๊ทผํด์ ๊ฐ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
var name = ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ"]
print(name) // ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ"]
name[0] = "์๋น์"
print(name) // ["์๋น์", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ"]
๋น ๋ฐฐ์ด์ด๋ ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ฐ์ ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ append๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค
// ๊ธฐ์กด ๋ฐฐ์ด
var name = ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ"]
name.append("๋น์")
print(name) // ["ํผ์นด์ธ", "๋ผ์ด์ธ", "ํ์ด๋ฆฌ", "๊ผฌ๋ถ๊ธฐ", "ํฝ๋๋ฆฌ", "๋น์"]
// ๋น ๋ฐฐ์ด
var numbers: [Int] = []
print(numbers) // []
numbers.append(1024)
print(numbers) // [1024]
numbers.append(0)
print(numbers) // [1024, 0]
'Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] MEMORY LEAK ์ก๊ธฐ (2) | 2023.02.17 |
---|---|
[RxSwift] ์๋ฌ ํธ๋ค๋ง (2) | 2023.02.09 |
[Swift] RxSwift์์ Combine์ผ๋ก ๋ฐ๊ฟ๋ณด๊ธฐ (2) | 2022.09.26 |