Wenn Sie eine While
Methode des Builder-Objekts definieren, können Sie while
-loops in Ihrem computation expressions verwenden. Die Unterschrift der While
Methode ist:Was ist die Rolle von while-Schleifen in Berechnungsausdrücken in F #?
member b.While (predicate:unit->bool, body:M<'a>) : M<'a>
Zum Vergleich wird die Unterzeichnung der For
Methode ist:
member b.For (items:seq<'a>, body:unit->M<'a>) : M<'a>
Sie sollten feststellen, dass in dem While
-Methode, der Körper ist eine einfache Art und nicht eine Funktion wie in der For
Methode.
Sie können einige andere Anweisungen wie let
und Funktionsaufrufe in Ihre Berechnungsausdrücke einbetten, aber diese können in einem while
-loop mehr als einmal ausgeführt werden.
builder {
while foo() do
printfn "step"
yield bar()
}
Warum ist die while
-loop nicht mehr als einmal ausgeführt, sondern lediglich wiederholt? Warum der signifikante Unterschied zu For-Schleifen? Besser noch, gibt es eine bestimmte Strategie für die Verwendung von While-Schleifen in Berechnungsausdrücken?
Schön. Ich wusste nichts über 'Run'. –