Siehe Aidans Kommentar.
Wenn Sie darauf bestehen, können Sie dies tun:
%Vor% Dies wird den absoluten Nullwert zuweisen ( 0
für numerische Typen, null
für Referenztypen, struct-zero für Werttypen).
Es wäre interessant zu wissen, warum der Autor das in F # benötigt (ein einfaches Anwendungsbeispiel würde genügen).
Aber ich denke, einer der häufigsten Fälle, wenn Sie nicht initialisierte Variable in C # verwenden können, ist, wenn Sie eine Funktion mit out
-Parameter aufrufen:
Glücklicherweise können Sie in F # diese Situation mit einer viel netteren Syntax behandeln:
%Vor%Ich stimme allen zu, die gesagt haben "tu es nicht". Wenn Sie jedoch davon überzeugt sind, dass Sie sich in einem Fall befinden, in dem es wirklich notwendig ist, können Sie Folgendes tun:
%Vor%... und später einen Wert zuweisen.
%Vor%Aber denken Sie daran, dass jeder, der gesagt hat, "ändern Sie stattdessen Ihren Ansatz" wahrscheinlich richtig ist. Ich code in F # Vollzeit und ich musste nie eine nicht zugewiesene "Variable" deklarieren.
Ein weiterer Punkt: Obwohl Sie sagen, dass es nicht Ihre Entscheidung war, F # zu verwenden, sage ich voraus, dass Sie sich bald glücklich schätzen werden, es zu benutzen!
F # -Variablen sind standardmäßig unveränderbar, sodass Sie nicht später einen Wert zuweisen können. Wenn sie daher ohne Anfangswert deklariert werden, sind sie ziemlich nutzlos, und daher gibt es keinen Mechanismus dafür.
Wahrscheinlich könnte eine veränderbare Variablendeklaration ohne einen Anfangswert deklariert werden und trotzdem nützlich sein (sie könnte einen anfänglichen Standard wie C # -Variablen erhalten), aber die F # -Syntax unterstützt dies nicht. Ich würde vermuten, dass dies für Konsistenz ist und weil veränderbare variable Slots nicht idiomatische F # sind, so gibt es wenig Anreiz, spezielle Fälle zu machen, um sie zu unterstützen.
Tags und Links f#