序列运算符
本课属于 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) // 600 是起始值,+ 表示让 Swift 将每个元素加到当前总和中。结合使用这些运算符,你可以轻松计算平均值:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86挑战
简单编写一个函数 analyzeScores,它接收 scores,并返回一个包含数组统计信息的摘要字符串。
使用序列运算符计算分数的数量、最小值、最大值和平均值,然后将它们格式化为一个摘要字符串。
逻辑:
- 使用
count获取元素总数 - 使用
min()查找最小值 - 使用
max()查找最大值 - 使用
reduce(0, +)计算总和,再除以数量得到平均值 - 返回包含所有统计信息的格式化字符串
参数:
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 {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Swift 在线编辑器