遵循代码F#:
try
let result = 100/0
with
| :? Exception as ex -> printfn ex.Message
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
'let'之后的块未完成.每个代码块都是一个表达式,必须有结果.'let'不能是块中的最终代码元素.考虑给这个块一个明确的结果.
我究竟做错了什么 ?
问题是,let它本身并不是一个表达方式:
在F#中,一切都是某种类型的表达.但是let单独不是一个表达式,是一个绑定,它必须继续使用一些表达式,大概是使用绑定到id的值result.
因为您只是在测试try/catch功能.我假设你并不真正对产生任何值感兴趣,这就是我添加表达式的原因:()之后let.
try
let result = 100/0
()
with
ex -> printfn "%s" ex.Message
Run Code Online (Sandbox Code Playgroud)
该try/with表达式要求双方回到同一类型的值,就像if/then/else做.由于在with侧面printfn返回unit,我使try侧面也返回一个unit值().把它想象成voidC#中的等价物.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |