我想做的就是使用 when 语句返回一个值:(
我想要以下功能:
if(x)
return y
我正在尝试使用:
(when (x) y)
但是when语句并没有以退出函数并返回y的方式进行计算。它只是愉快地继续下一行。有没有办法做到这一点而不需要制作一个看起来极其丑陋的 if-else 块? mzscheme/racket 不允许 1-armed ifs。
好吧,我要成为“那个人”;使用“极其丑陋”的解决方案,将函数的其余部分放在条件的“else”中,这是有充分理由的;它使代码更容易阅读和理解。当我试图理解一个函数的作用时,我不想扫描所有代码来寻找隐藏的return
s和奇怪的控制流。简单的“if”或“cond”可以非常清楚地表明每段代码将在什么情况下使用。
如果你认真思考为什么你喜欢“when+return”解决方案,我怀疑在某种程度上,你想要采取这种保护措施并“让它摆脱”你的认知过程,让函数的其余部分成为焦点。这(我声称)是产生微妙错误的秘诀。
寻找你的感受;你知道这是真的!
编辑:一只蚂蚁刚刚爬过我的笔记本电脑。这是我说实话的标志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)