3

これを書くよりエレガントな方法はありますか?

@on_connection_callback.call() if @on_connection_callback

@on_connection_callback を 2 回参照する必要があり、イライラしています。

4

5 に答える 5

2

あなたはこれを次のように書くことができます

@on_connection_callback.call() rescue nil
于 2013-01-25T14:20:47.017 に答える
2

私は以下を可能にする「andand」宝石のようなものが好きです:

@on_connection_callback.andand.call()

さまざまなtry実装など、他のオプションがあります。

于 2013-01-25T14:28:06.757 に答える
1

この小さな宝石を使用してください:

tryit { @on_connection_callback.call() }
于 2013-01-25T15:04:09.660 に答える
1
@on_connection_callback.call() if @on_connection_callback

は問題なく、実際にテストする最速の方法です。私は最近、ここでベンチマーク テストを行い、上記が以下よりもわずかに高速であることを証明しました。

@on_connection_callback && @on_connection_callback.call()
于 2013-01-25T14:56:12.010 に答える
1
@on_connection_callback.instance_eval{call if self}

または

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