Нет ничего плохого в ваших циклах 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 Комментарий ниже.В моей оригинальной версии была серьезная ошибка (возвращался неверный тип).Я пишу Swift с того дня, как он был выпущен.Я учу Свифта.Я преподаю функциональное программирование в Swift.И я облажался, когда писал на лету.Я бы никогда не сделал эту ошибку с простым циклом for.Там есть главный урок.