我有一个名为 word
的字符串和一个名为 infinitive
的函数,这样
word.infinitive
在某些情况下会返回另一个字符串,否则会返回一个空字符串
我正在尝试为下面的代码片段找到一个优雅的 ruby 单行表达式
if word.infinitive == ""
return word
else return word.infinitive
如果不定式返回 nil 而不是 "",我可以做类似的事情
(word.infinitive or word)
但既然没有,我就不能利用短路OR
理想情况下我想要
1) 我可以轻松嵌入其他代码的单个表达式
2) 函数不定式只被调用一次
3) 不要在我的代码中添加任何自定义 gem 或插件
最佳答案
ActiveSupport presence
方法将空(或 blank?
)字符串转换为 nil
。它专为您的确切用例而设计:
word.infinitive.presence || word
请注意,您可以在 rails 之外轻松使用 ActiveSupport:
require 'active_support/core_ext/object/blank'
关于ruby - 在 Ruby 中将空字符串转换为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647370/