在 Ruby 中修剪字符串而不创建新字符串的规范方法是什么?

发布于 2022-07-28 22:58:08

这就是我现在所拥有的——对于它正在做的工作来说,这看起来太冗长了。

@title        = tokens[Title].strip! || tokens[Title] if !tokens[Title].nil?

假设令牌是通过拆分 CSV 行获得的数组。现在像条一样的功能!咬!等。如果字符串没有被修改,全部返回 nil

"abc".strip!    # => nil
" abc ".strip!  # => "abc"

如果它包含额外的前导或尾随空格而不创建副本,Ruby 的方式是什么?

如果我想做就会变得更丑tokens[Title].chomp!.strip!

关注者
0
被浏览
11
1 个回答
  • 面试哥
    面试哥 2022-07-28
    为面试而生,有面试问题,就找面试哥。

    我猜你想要的是:

    @title = tokens[Title]
    @title.strip!
    

    如果它没有剥离任何东西,该#strip!方法将返回,如果它被剥离,则返回变量本身。nil

    根据 Ruby 标准,以感叹号为后缀的方法会更改变量。

    希望这可以帮助。

    更新: 这是irb用于演示的输出:

    >> @title = "abc"
    => "abc"
    >> @title.strip!
    => nil
    >> @title
    => "abc"
    >> @title = " abc "
    => " abc "
    >> @title.strip!
    => "abc"
    >> @title
    => "abc"
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看