我正在掃描滿足條件的source
中的元素。條件通常但不總是正則表達式匹配。我正在尋找find
的版本,該版本返回條件的結果,而不是原始元素。用find
,我必須重新計算成功元素的標準。返回條件值的`find`,而不是元素值
我摸索出最好沿着這條線運行:
source.find {|e| if (m = e.match(/(e.)/)); break m[0]; end}
爲了避免分號提示Rubocop抱怨多語句行,我喜歡寫如下:
source.find {|e| break m[0] if (m = e.match(/(e.)/))}
但是Ruby無法應對前方參考(並且我沒有足夠扭轉以重新使用e
爲m
)。
有沒有更優雅的做這項工作的捷徑?
如果您不知道,您可以提出答案並選擇您認爲最有幫助的答案。 –