gpt4 book ai didi

f# - 如何在 F# 中将两个(双选项)相乘

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

我的代码包含相当多的双选项类型;到目前为止,我一直非常成功地使用 Option.map 函数来消除必须在所有地方匹配 Some 和 None 并将它们视为提升类型的需要,但我不确定在以下情况下该怎么做:

let multiplyTwoOptions option1 option2 : double option =
if not (option1.IsSome && option2.IsSome) then None
else Some (option1.Value * option2.Value)

我已经 read您不应该以这种方式使用 IsSome,而是使用替代方案(据我所知,按顺序对两者进行模式匹配,似乎很啰嗦)。我对 F# 还是很陌生,所以想知道是否有更惯用的方式?我觉得也许我需要像 Option.fold2 这样的东西来同时处理两个选项,但没有一个。

最佳答案

模式可以嵌套,这就是它们的强大之处。在这种特殊情况下,您可以对元组进行模式匹配:

match option1, option2 with
| Some x, Some y -> Some (x * y)
| _ -> None

关于f# - 如何在 F# 中将两个(双选项)相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082719/

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