Stavo guardando this video. A 9:40 o giù di lì c'è qualche codice di esempio nella schermata che si presenta come il codice qui sotto:guardia lascia entrare il campo da giuoco veloce 2.0 riceve errore sul collegamento facoltativo ... perché?
//Sieve of Eratosthenes, as seen in WWDC 2015
func primes(n: Int) -> [Int] {
var numbers = [Int](2..<n)
for i in 0..<n-2 {
guard let prime = numbers[i] where prime > 0 else { continue }
for multiple in stride(from: 2 * prime-2, to: n-2, by: prime) {
numbers[multiple] = 0
print("\"numbers[i]")
}
}
return numbers.filter { $0 > 0 }
}
Quando digito che in un parco giochi Xcode, ottengo il seguente errore:
Initializer for conditional binding must have Optional type, not 'Int.'
Perché?
hm se lo faccio, quindi ottengo un errore diverso su la riga 'per più in passo (da: 2 * prime-2, a: n-2, da: prime)' "stride (from: to: by :) non è disponibile. Chiama invece il metodo 'stride' (to: by :). –
@DaveKliman si, ma questo non ha nulla a che fare con la guardia. Non so esattamente quale sia il problema con 'stride', ma il compilatore dice" errore: 'stride (from: to: by :)' non è disponibile: chiama il metodo 'stride (to: by :)' invece " – luk2302
per quanto posso dire che è un elemento di una schiera di Ints, quindi dovrebbe essere un Int, sì? –