我可以代替這個分配值僅如果不是零
le_one ||= load_le_other()
我如何取代這個:有比這以外的東西
le_other = load_le_other()
le_one = le_other if le_other
:
le_other = load_le_other()
le_one = le_other || le_one
load_le_other
調用兩次是昂貴的。目標是讓它成爲一個班輪。
我可以代替這個分配值僅如果不是零
le_one ||= load_le_other()
我如何取代這個:有比這以外的東西
le_other = load_le_other()
le_one = le_other if le_other
:
le_other = load_le_other()
le_one = le_other || le_one
load_le_other
調用兩次是昂貴的。目標是讓它成爲一個班輪。
替換此:
le_one = load_le_other() || le_one
這就是OP明確表示要避免的原因。 – sawa
@sawa很好,可能會等待lucas –
這是一次只能調用'load_le_other()'的單線程。如果這不完全是問題,那麼這個問題需要編輯。 –
如果load_le_other()
不能返回false
,
le_one = le_other = load_le_other()
注意,如果
le_other = load_le_other()
#=> nil
le_one = le_other if le_other
# le_one = nil if nil
#=> nil
我沒有看到'load_le_other'被調用了兩次。 – AlexN
我覺得好奇的是,有那麼多讀者解釋爲「load_le_other'調用兩次的代價很大」,這意味着OP的代碼會將該方法調用兩次,並且要避免。把它解釋爲意味着單線不應該將這種方法稱爲兩次是不是更有意義? –