有没有更简洁的 Coffeescript 成语呢?
Posted
技术标签:
【中文标题】有没有更简洁的 Coffeescript 成语呢?【英文标题】:Is there a more concise Coffeescript idiom for this? 【发布时间】:2014-11-24 07:50:22 【问题描述】:我正在尝试翻译这段 javascript 代码:
if(error)
foo();
return null;
bar()
进入 Coffeescript 代码,这里bar()
是另一段我不想缩进的长代码
还有比这更好的方法吗?
if error
foo()
return null
bar()
【问题讨论】:
也许你可以展示更多的功能?我怀疑这是一个节点回调,为此需要简化许多模式。 是的,这是 Node 回调的第一个 sn-p,但它如何改变问题?我要求一个通用的方法。否则,你有什么建议? @mattecapu 你期待什么更好的方式? @mattecapu:我建议使用 Promise。或者,取决于foo
是什么,围绕回调的一些通用高阶包装器。
当然,这是一个可行的选择,但作为咖啡脚本的新手,我想看看如何操作这些表达式。除此之外,无论如何我都会使用 Promise。
【参考方案1】:
怎么样
if error
foo()
else
bar()
(可能是with a trailing return
)
【讨论】:
查看编辑后的答案,这里bar()
确实是一段更大的代码
那么真的没有什么更简洁的了(虽然我看不出缩进bar
有什么问题)【参考方案2】:
你可以用另一种形式重写它(在符号上略有不同,因为你返回的是 foo() 的结果):
return foo() if error
【讨论】:
【参考方案3】:您的代码对我来说看起来不错。
不过,如果你真的希望它是单行的,你可以利用括号:
return (foo(); null) if error
【讨论】:
这就是我想要的。但是也许过于简洁了?你觉得它的可读性差吗?以上是关于有没有更简洁的 Coffeescript 成语呢?的主要内容,如果未能解决你的问题,请参考以下文章
要关于兔子的神话和传说,成语,动画片,来历都写短一点,简洁一点,不要太多字。