当前位置:  开发笔记 > 编程语言 > 正文

功能等同于带有变量比较的if表达式

如何解决《功能等同于带有变量比较的if表达式》经验,为你挑选了1个好方法。

我有一些复杂的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成为该陈述中的一个.



1> Mark Seemann..:

关于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)更简洁.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有