3

有没有更优雅的写法?

@on_connection_callback.call() if @on_connection_callback

它必须引用@on_connection_callback 两次,这让我很恼火。

4

5 回答 5

2

我喜欢像“andand” gem这样的东西,它允许:

@on_connection_callback.andand.call()

还有其他选项,例如各种try实现。

于 2013-01-25T14:28:06.757 回答
2

你可以这样写

@on_connection_callback.call() rescue nil
于 2013-01-25T14:20:47.017 回答
1

使用这个小宝石

tryit { @on_connection_callback.call() }
于 2013-01-25T15:04:09.660 回答
1
@on_connection_callback.instance_eval{call if self}

或者

->p{p.call if p}.call(@on_connection_callback)
于 2013-01-25T14:28:19.853 回答
1
@on_connection_callback.call() if @on_connection_callback

很好,实际上是最快的测试方法。我最近在这里做了一个基准测试,证明上面的速度略快于:

@on_connection_callback && @on_connection_callback.call()
于 2013-01-25T14:56:12.010 回答