【发布时间】:2013-03-03 09:26:01
【问题描述】:
我正在寻找一种使用 Ruby 将空字符串转换为 nil 的方法。如果我最终得到一个空格的字符串,我可以这样做
" ".strip!
这会给我一个空字符串""。
我想做的就是这样。
" ".strip!.to_nil!
这将用nil 替换空字符串。如果是.empty?,to_nil! 将直接将字符串更改为nil,否则如果字符串不为空,则不会更改。
这里的关键是我希望它直接发生,而不是通过诸如
之类的分配f = nil if f.strip!.empty?
【问题讨论】:
-
也许我遗漏了一些东西......但是首先对字符串做一些事情然后将其设置为 nil 有什么意义呢?不妨一开始就将字符串设置为 nil,对吧?
-
不能就地完成。您是否只对就地修改感兴趣?我用
String#presence创建了一个答案,但它不是就地的(请注意,就地/重新绑定通常都是不好的做法)。 -
我同意它们通常是一种不好的做法,我实际上是在尝试绕过障碍,这种类型的解决方案会使它变得非常容易。