0

if如果函数不返回空,我有以下语句用函数的结果填充字段。

我想我之前看过一些例子,空检查和函数可以组合在一起,if而我不必在条件下再次重复整个函数。

我正在寻找新的 DRY 建议!

icons = page.search("theicons").to_s if !page.search("theicons").to_s.empty?
4

5 回答 5

4

有什么问题吗

theicons = page.search("theicons").to_s
icons = theicons unless theicons.empty?
于 2013-05-18T14:21:03.023 回答
1

如果您使用的是 Rails,则可以将其缩短为:

icons = page.search("theicons").to_s.presence || icons
于 2013-05-18T14:41:19.203 回答
0
icons = page.search("theicons") unless page.search("theicons").present?

或者

icons ||= page.search("theicons")
于 2013-05-18T21:33:19.613 回答
0

您可以使用逻辑运算符:

icons = (page.search('theicons') || default_value).to_s
于 2013-05-18T14:31:56.413 回答
0

试试这个:

icons = page.search("theicons").to_s.present? && page.search("theicons").to_s

注意:present?是一个rails helper。

于 2013-05-18T14:53:14.783 回答