【发布时间】:2020-07-27 21:54:32
【问题描述】:
我(相对)是编程新手。我正在阅读 Apple 的“应用程序开发简介”,由于没有某种答案手册,我不得不自己解决问题。但是有些事情我有点困惑:
我正在处理一个问题:
这个游乐场内置了鸡类型。鸡有品种和脾气属性,这两个属性都是枚举。
这是一组鸡: 鸡 = [{silkie, 脾气暴躁}...]
任务是计算数组中有多少只品种“leghorn”和脾气“hilarious”的鸡。我想出了以下代码:
var chickenOfInterestCount = 0
for chicken in chickens {
switch chicken.temper {
case .hilarious:
switch chicken.breed {
case .leghorn:
chickenOfInterestCount += 1
default:
chickenOfInterestCount += 0
}
default:
chickenOfInterestCount += 0
}
}
chickenOfInterestCount
它有效,但我想知道是否有更有效的方法来做到这一点?我可以让开关检查每只鸡的 {leghorn, hilarious} 并直接计算所需鸡的数量,而不是使用嵌套开关吗? (我自己尝试的所有尝试都被看起来很吓人的错误消息压制了,所以我猜不是)从那以后,for循环如何工作?
当我最初学习 for 循环时,我的印象是整数是用来循环的,例如第一个循环是 i = 0,执行里面的代码,然后第二个循环是 i = 1,依此类推,其中“i”实际上可以是任何东西,想法是一样的。这里用的是“鸡”。为什么我可以将条件设置为 chicken.temper?鸡在这里是什么意思? for 循环是否尊重它循环通过的数组的类型?那么这里实际发生的情况是否类似于“在鸡阵列中取第 0 只鸡,称其为‘鸡’,然后检查它的脾气”?
【问题讨论】:
标签: swift for-loop switch-statement