gpt4 book ai didi

swift - 在 Swift 中编写多个嵌套的 for...in 循环

转载 作者:可可西里 更新时间:2023-11-01 01:07:23 24 4
gpt4 key购买 nike

请问有没有更简洁或更好的方法来在 Swift 中编写下面的嵌套 for...in 循环?还是使用 for...in 甚至以正确的方式填充我的卡片?

for cardNumber in 1...3 {
for cardSymbolIdentifier in 1...3 {
for cardColorIdentifier in 1...3 {
for cardShadingIdentifier in 1...3 {
let card = Card(cardNumber: cardNumber, cardSymbolIdentifier: cardSymbolIdentifier, cardColorIdentifier: cardColorIdentifier, cardShadingIdentifier: cardShadingIdentifier)
deckOfCards.append(card)
}
}
}
}

它确实可以完成这项工作,但我在文档中找不到任何关于编写多个嵌套循环的内容。

非常感谢,安迪

最佳答案

您的 for 循环绝对没有问题。它们是优秀的、写得很好的 Swift。您的代码的唯一问题是它强制 deckOfCards 可变 (var),这可能是不受欢迎的。如果是,您可以使用 map,但我认为这不是特别好的 Swift,只是略有不同。

let d = (1...3).flatMap { number in
(1...3).flatMap { symbol in
(1...3).flatMap { color in
(1...3).map { shading in
Card.init(cardNumber: number,
cardSymbolIdentifier: symbol,
cardColorIdentifier: color,
cardShadingIdentifier: shading
)}}}}

可能会以第二种方式写它,但只是出于文体原因。您的 for 循环绝对没问题。


注意@user28434 下面的评论。我的original version其中有一个主要错误(它返回了错误的类型)。自 Swift 发布之日起,我就一直在编写它。我教 swift 。我用 Swift 教授函数式编程。我在写的时候把它搞砸了。我永远不会用一个简单的 for 循环犯那个错误。那里有一个重要的教训。

关于swift - 在 Swift 中编写多个嵌套的 for...in 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com