coffeescript为何没有三元运算

既然是为了简便为什么设计需要去掉这种明显更简单的写法,而非要用if ... then ... else ...来表示呢?

阅读 6.1k
4 个回答

或许是因为问号有其他用途
话说foo?.bar?()能省很多代码啊

簡單既可以是書寫簡單,也可以是思路簡單。

比如 foo?.bar?() 你要自己寫,思路就會被打斷,因爲你要被迫考慮具體實現的問題,注意力從全局移開了。

即便是書寫簡單的寫法,也不一定思路簡單。foo?true:false 雖然看上去簡單,但要 nest 就不得不考慮優先級的問題。

给大家看一个句式:
_p = if url.indexOf '?' is -1 then '?' else '&'

结果是

var _p;
_p = url.indexOf('?' === -1) ? '?' : '&';

非得
_p = if url.indexOf('?') is -1 then '?' else '&'

别告诉我前面的写法不对……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进