Menu
CoddyTech

序列运算符

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 75 课,共 86 课。

Swift 提供了实用的内置属性和方法,让你无需编写循环就能快速获取数组的信息。这些序列运算符能帮你用最少的代码完成常见计算。

count 属性会返回数组中的元素数量:

let scores = [85, 92, 78, 90]
print(scores.count)  // 4

对于数值数组,Swift 提供了查找最小值和最大值的方法。由于空数组没有最小值或最大值,min() 和 max() 方法会返回可选值:

let temperatures = [72, 68, 75, 80, 65]

if let lowest = temperatures.min() {
    print(lowest)  // 65
}

if let highest = temperatures.max() {
    print(highest)  // 80
}

要计算所有元素的总和,请使用 reduce 方法。它会从初始值开始合并所有值:

let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total)  // 60

0 是起始值,+ 表示让 Swift 将每个元素加到当前总和中。结合使用这些运算符,你可以轻松计算平均值:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86
challenge icon

挑战

简单
编写一个函数 analyzeScores,它接收 scores,并返回一个包含数组统计信息的摘要字符串。

使用序列运算符计算分数的数量、最小值、最大值和平均值,然后将它们格式化为一个摘要字符串。

逻辑:

  1. 使用 count 获取元素总数
  2. 使用 min() 查找最小值
  3. 使用 max() 查找最大值
  4. 使用 reduce(0, +) 计算总和,再除以数量得到平均值
  5. 返回包含所有统计信息的格式化字符串

参数:

  • scores([Int]):整数分数数组(保证至少有一个元素)

返回值:包含统计信息的格式化字符串(String)。格式:"Count: X, Min: X, Max: X, Avg: X"

示例:如果 scores 是 [85, 90, 78, 92],函数应返回 "Count: 4, Min: 78, Max: 92, Avg: 86"。

注意:平均值应使用整数除法计算(不保留小数位)。

亲手试试

func analyzeScores(scores: [Int]) -> String {
    // 在这里编写代码
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Swift 在线编辑器