フィボナッチジェネレータを実装する際に、なぜlet
キーワードを使用するのか理解しようとすると混乱します。我々は(次の文の前)while
ループでlet
なくvar
を使用しないのはなぜwhileループ&letキーワードの混乱を招くGeneratorTypeの実装
struct FibonacciGenerator: GeneratorType {
typealias Element = Int
var values = (0, 1)
mutating func next() -> Element? {
self.values = (
self.values.1,
self.values.0 + self.values.1
)
return self.values.0
}
}
var generator = FibonacciGenerator()
while let next = generator.next() {
if next > 10 {
break
}
print(next)
}
?
実際に私の質問を読んだことはありますか?次のオブジェクトが新しい値に変更され、キーワードは次のオブジェクトが値を変更できないことを意味します。だから私は、誰かが次のオブジェクト(または変数または定数私もそれを今どのように名前を知っていない)知っている場合、私は私が私に尋ねてくださいいくつかのアイデアを実現することはできないと思う。 –
'generator.next()'が非オプションの値を返さなくなるまで、あなたは 'next'定数を何度も何度も宣言し直しています。あなたは決して 'next'の価値を変えていません。変数/定数の宣言と値の代入の違いを理解しておいてください。 –
ご協力いただきありがとうございます! –