gpt4 book ai didi

f# - 功能等同于带变量比较的 if 表达式

转载 作者:行者123 更新时间:2023-12-02 06:54:36 24 4
gpt4 key购买 nike

我有一些复杂的 if 语句,可读性不是很好。它的工作方式类似于以下示例:

let a = 1
let b = 2
let test v = true
if a <> b then a - 1
else
if (test a) then a + 1
else a

有更好的功能解决方案吗?我想到了类似的东西

match a with
| b -> ...
| _ -> ...

但这当然行不通,因为 b 在该语句中变成了 a。

最佳答案

if..then..else 表达式没有任何“无效”的地方;甚至 Haskell 也有它们 ;)

虽然,正如 John Palmer 的回答所示,您可以编写

match a with
| foo when foo <> b -> a - 1
| foo when test foo -> a + 1
| _ -> a

你也可以这样写

if a <> b then a - 1
elif test a then a + 1
else a

就个人而言,在这种情况下,我更喜欢 if..then..else 语法,因为它稍微更短并且 (IMO) 更简洁。

关于f# - 功能等同于带变量比较的 if 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329446/

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