実際の初心者の質問です...forループでは、ループパラメータはいつ評価されますか?
ループでは、ループパラメータはいつ評価されますか?ここで
は、ループはそうc
は明らかたびにループが始まる「チェックされて」は、永遠に実行されます。
c= [1]
for i in c
push!(c, i)
@show c
end
c = [1,1]
c = [1,1,1]
c = [1,1,1,1]
...
しかし、このループは一度だけ評価されます
c= [1]
for i in 1:length(c)
push!(c, i)
@show c
end
c = [1,1]
この1つのルックスようにすべてのループを評価するような:
c= [1]
for (i, _) in enumerate(c)
push!(c, i)
@show c
end
c = [1,1]
c = [1,1,1]
c = [1,1,1,1]
...
しかし、これOPは明らかにされていません。
c= [1]
for i in eachindex(c)
push!(c, i)
@show c
end
c = [1,1]
をそして、この処理が行われます。
c= [1]
foreach(a -> (push!(c, a); @show c), c)
c = [1,1]
c = [1,1,1]
c = [1,1,1,1]
...
私が言ったように、それは本当の初心者の質問です。しかし、私は一般的なパターンを欠いていますか?私は、主なポイントは、あなたの様々なループは、オブジェクトの二つの異なるタイプのジュリアのIteratorインターフェイスを呼び出していることであると考えてい
良い回答ありがとうございます。公式の文書に追加する価値があるかもしれない...私は一日PRにするつもりかもしれない... :) – daycaster
喜んで助けた。良いアイデア:私はJuliaのドキュメントは一般的に非常に優れていると思っていますが、適切な場所で反復する方法の違いを強調することは有用かもしれません。 –