Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
My solution works but Codewars Environment throws and error.
"solution.swift:23:31: error: value of type 'Duration' has no member 'formatted'".
Duration does have the 'formatted()' method.
That's just another way of writing the same thing. It comes down to personal preference. Although, I would argue that since
guard
is specifically meant for returning early from a closure, which is what we're doing here, it makes more sense in this context thanif
.Why would you use guard here? Can't we just write
if (num < 3) { return 0 }
?Exactly what i was thinking. I first tried it like above, but it was throwing me an error. But i think mainly because i used "for i in 1..<num" and it was checking with 0.
I nested the whole thing in a "if num > 0 {...} else {return 0}" but mainly cause i'm not much familiar with guard. :D Thanks, gonna look into that again.
This comment is hidden because it contains spoiler information about the solution
I get this message when using FrankK's solution:
error: winningNumber.playground:72:13: error: 'random()' is unavailable in Swift: Use arc4random instead.
return (random() % limit)+min
But, arc4Random_uniform, also does not work, although it works perfectly in Playgrounds.