Ale*_*x F 14 f#
编译此代码片段:
let test = let x = 1 printfn "%A" x
如果删除了最后一行,则会出现以下编译错误:
error FS0588: Block following this 'let' is unfinished. Expect an expression.
这条消息是什么意思?在C#/ C++中,我希望在这种情况下"未使用的变量"警告,但F#给出了不同的东西.
Jim*_*mmy 16
在F#中,函数必须将名称绑定到值.
该printfn语句具有返回值,这最终将被绑定test.
printfn
test
如果没有该printfn语句,您只有一个将值1绑定到的语句x.编译器将期待一些必须测试的东西.因为测试函数此时停止,所以这就是您看到编译器错误的原因.
x
如果你希望你的功能只是为了做东西(可能有副作用),你应该结束你的功能 ()
()
归档时间:
14 年,10 月 前
查看次数:
6347 次
最近记录: