#do something 我已经尝试">
gpt4 book ai didi

exception - 如何在 Ocaml 的 float 类型中表示空值

转载 作者:行者123 更新时间:2023-12-02 22:27:16 26 4
gpt4 key购买 nike

我知道这可能看起来很基本,但基本上,我想说的是模式匹配

match value with
Null-> failwith "Empty"
|value-> #do something

我已经尝试了 null 或 none 的任何变体,并且还尝试了无法使用的单位,因为值是 float 。

我很困惑,任何帮助将不胜感激

最佳答案

你不能。这是一个设计选择。许多语言允许任何值为空。这种方法的问题在于,当程序员不期望时,值会为空,或者代码必须检查每个输入值是否为空。

OCaml 采用的方法是,如果一个值可能为 null,则必须将其显式标记为 null。这是通过选项类型完成的:

match value with
| None -> failwith "Empty"
| Some value -> (* do something *)

但是,如果您将其直接替换到程序中,则将无法编译,因为 OCaml 会发现该“值”实际上不能为空。无论创建什么,都需要更新以指示它何时返回“空”值(无):

let safe_divide numerator denominator =
if denominator <> 0. then
Some (numerator /. denominator)
else
None (* division by zero *)

关于exception - 如何在 Ocaml 的 float 类型中表示空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com