如何创建空引用?我的意思是像
let x = ref Null
Run Code Online (Sandbox Code Playgroud)
或者
let x = ref None
Run Code Online (Sandbox Code Playgroud)
或者
let x = ref ()
Run Code Online (Sandbox Code Playgroud)
机器学习中没有这样的事情。type 的值t ref
始终保存 type 的值t
。这样就可以避免空指针异常的祸患。
如果您确实需要一个可为空的引用,那么您必须创建一个类型的引用t option ref
:
let r : int option ref = ref None
...
r := Some 5
Run Code Online (Sandbox Code Playgroud)
然后类型系统确保您不会忘记处理 None 情况,例如使用匹配:
match !r with
| Some n -> ...
| None -> (* What now? *)
Run Code Online (Sandbox Code Playgroud)
不过,你应该很少需要这样的东西。如果您发现自己需要一个选项引用,那么您应该首先尝试重构问题。