我习惯用 C# 编写这样的代码:
SomeObj obj;
try{
// this may throw SomeException
obj = GetSomeObj();
}catch(SomeException){
// Log error...
obj = GetSomeDefaultValue();
}
obj.DoSomething();
这是我在 F# 中翻译它的方式(obj 是一个列表):
let mutable obj = []
try
obj <- getSomeObj
with
| ex ->
// Log ex
obj <- getSomeDefaultValue
doSomething obj
有什么方法可以在不使用可变变量的情况下在 F# 中执行此操作?在 F# 中是否有更“优雅”的方式来处理这种情况?
谢谢!