数组方法
本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 65 课,共 86 课。
除了添加和移除元素,Swift 数组还提供了几种实用的方法,让你更轻松地处理集合。
isEmpty 属性用于检查数组是否包含元素:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // false要一次性删除所有元素,请使用 removeAll():
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []reversed() 方法会按相反的顺序返回元素:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]排序时,使用 sorted() 获取一个新的已排序数组,或使用 sort() 对数组进行原地排序:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]注意,sorted() 会返回一个新数组,同时保持原数组不变;而 sort() 会直接修改原数组。
挑战
简单编写一个函数 processScores,它接收 scores,并返回一个包含分数信息的格式化字符串。
该函数应分析数组,并构建一个包含三项信息的结果字符串。
逻辑:
- 使用
isEmpty检查数组是否为空 - 如果为空,则返回
"No scores" - 否则,获取按升序排列的分数和反转后的分数
- 返回一个组合这两项结果的字符串
参数:
scores([Int]):一个由整数分数组成的数组
返回值:格式为 "Sorted: [sorted_array], Reversed: [reversed_array]" 的字符串;如果数组为空,则返回 "No scores"(String)
示例:如果 scores 是 [85, 42, 97, 63],函数应返回:
"Sorted: [42, 63, 85, 97], Reversed: [63, 97, 42, 85]"注意:反转后的数组应是原始数组的反转结果,而不是排序后数组的反转结果。
亲手试试
func processScores(scores: [Int]) -> String {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Swift 在线编辑器