パラメータを持たないメソッドを宣言し、それを(F#-interactiveで)呼び出すと、期待される動作が得られます。 "test"が画面に表示されます。私は括弧なしでメソッドを宣言するとメソッド宣言でかっこを使用する場合
let somefn() =
printfn "test"
>
val somefn : unit -> unit
> somefn();;
test
val it : unit =()
はしかし、その後、私はいくつかの異なる動作を取得:
let somefn =
printfn "test"
>
test
val somefn : unit =()
> somefn;;
val it : unit =()
> somefn();;
somefn();;
^^^^^^
C:\...\Local\Temp\stdin(4,1): error FS0003: This value is not a function and cannot be applied.
それでは、私は理解していない:
- なぜメソッドの宣言はなしですパラメータがパラメータと異なる
- 括弧なしで宣言すると、メッセージが表示されます。val somefn:unit =()。 unit =()とはどういう意味ですか?私は今何を正確に宣言しましたか?どのようなエンティティはsomefnになりましたか?
- 今や、somefnと呼ばれるエンティティがあります。これは実行可能なコードを示しています。どのようにしてそのコードを実行できますか? somefnを構造体のメンバーとして宣言し、そこから実行できますか?
:あなたがこれを行う必要はありませんでしょうが、単にポイント自宅を駆動するために、あなたも、複数の
unit
パラメータを追加することができます。 –ここにいくつかの情報を含むリンクがありますhttps://stackoverflow.com/questions/3554750/f-functions-vs-values –
ここにはメソッドはありませんが、機能が異なることに注意してください。 – TheQuickBrownFox