这就是我现在得到的——对于它正在做的工作来说,这看起来太啰嗦了。
@title = tokens[Title].strip! || tokens[Title] if !tokens[Title].nil?
假设token是通过分割CSV行获得的数组。
现在的功能像脱衣!chomp !如果字符串未被修改,则返回nil
"abc".strip! # => nil
" abc ".strip! # => "abc"
如果它包含额外的前导空格或尾随空格,Ruby如何在不创建副本的情况下对其进行修剪?
如果我想要做令牌[Title].chomp!.strip!
如果你有ruby 1.9或active支持,你可以简单地做
@title = tokens[Title].try :tap, &:strip!
这真的很酷,因为它利用了:try和:tap方法,在我看来,这是ruby中最强大的函数结构。
一种更可爱的形式,将功能全部传递为符号:
@title = tokens[Title].send :try, :tap, &:strip!
如果你有ruby 1.9或active支持,你可以简单地做
@title = tokens[Title].try :tap, &:strip!
这真的很酷,因为它利用了:try和:tap方法,在我看来,这是ruby中最强大的函数结构。
一种更可爱的形式,将功能全部传递为符号:
@title = tokens[Title].send :try, :tap, &:strip!