Mảng (Array)
1. Tạo Array
Phần tiêu đề “1. Tạo Array”// Array literallet numbers = [1, 2, 3, 4, 5]let fruits = ["Apple", "Banana", "Orange"]
// Empty arrayvar emptyArray: [Int] = []var anotherArray = [String]()
// Array với giá trị mặc địnhlet zeros = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0]2. Mutable vs Immutable
Phần tiêu đề “2. Mutable vs Immutable”let immutableArray = [1, 2, 3]// immutableArray.append(4) // Error!
var mutableArray = [1, 2, 3]mutableArray.append(4) // OK3. Truy cập phần tử
Phần tiêu đề “3. Truy cập phần tử”let fruits = ["Apple", "Banana", "Orange"]
print(fruits[0]) // Appleprint(fruits[1]) // Bananaprint(fruits.first) // Optional("Apple")print(fruits.last) // Optional("Orange")4. Thêm phần tử
Phần tiêu đề “4. Thêm phần tử”var numbers = [1, 2, 3]
numbers.append(4) // [1, 2, 3, 4]numbers.insert(0, at: 0) // [0, 1, 2, 3, 4]numbers += [5, 6] // [0, 1, 2, 3, 4, 5, 6]5. Xóa phần tử
Phần tiêu đề “5. Xóa phần tử”var numbers = [1, 2, 3, 4, 5]
numbers.remove(at: 0) // [2, 3, 4, 5]numbers.removeLast() // [2, 3, 4]numbers.removeAll() // []6. Thay đổi phần tử
Phần tiêu đề “6. Thay đổi phần tử”var fruits = ["Apple", "Banana", "Orange"]
fruits[1] = "Mango"print(fruits) // ["Apple", "Mango", "Orange"]7. Duyệt Array
Phần tiêu đề “7. Duyệt Array”let fruits = ["Apple", "Banana", "Orange"]
// For-infor fruit in fruits { print(fruit)}
// Với indexfor (index, fruit) in fruits.enumerated() { print("\(index): \(fruit)")}8. Array Methods
Phần tiêu đề “8. Array Methods”let numbers = [1, 2, 3, 4, 5]
print(numbers.count) // 5print(numbers.isEmpty) // falseprint(numbers.contains(3)) // true
let doubled = numbers.map { $0 * 2 } // [2, 4, 6, 8, 10]let evens = numbers.filter { $0 % 2 == 0 } // [2, 4]let sum = numbers.reduce(0, +) // 159. Slicing
Phần tiêu đề “9. Slicing”let numbers = [1, 2, 3, 4, 5]
let slice = numbers[1...3] // [2, 3, 4]let prefix = numbers.prefix(3) // [1, 2, 3]let suffix = numbers.suffix(2) // [4, 5]10. Sorting
Phần tiêu đề “10. Sorting”var numbers = [5, 2, 8, 1, 9]
numbers.sort() // [1, 2, 5, 8, 9] (in-place)let sorted = numbers.sorted() // Trả về array mới
// Sắp xếp giảm dầnnumbers.sort(by: >) // [9, 8, 5, 2, 1]📝 Tóm tắt
Phần tiêu đề “📝 Tóm tắt”[Type]- Array typelet- Immutable,var- Mutableappend(),insert()- Thêm phần tửremove(),removeLast()- Xóa phần tửmap,filter,reduce- Higher-order functionssort()vssorted()- In-place vs new array- Subscript
[index]để truy cập enumerated()để có index khi duyệt