Menu
CoddyTech

数组方法

本课属于 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() 会直接修改原数组。

challenge icon

挑战

简单
编写一个函数 processScores,它接收 scores,并返回一个包含分数信息的格式化字符串。

该函数应分析数组,并构建一个包含三项信息的结果字符串。

逻辑:

  1. 使用 isEmpty 检查数组是否为空
  2. 如果为空,则返回 "No scores"
  3. 否则,获取按升序排列的分数和反转后的分数
  4. 返回一个组合这两项结果的字符串

参数:

  • 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 {
    // 在这里编写代码
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器