【问题标题】:Ruby .detect alternative [closed]Ruby .detect 替代品[关闭]
【发布时间】:2013-05-13 17:20:58
【问题描述】:

我正在寻找可以解决以下问题的替代方案:

使用.detect 如果我正在寻找stringvalue 并且给定的值为132stringvalue,它仍然会返回true。我需要一个从字符串开头匹配所有内容的替代方法。除了正则表达式还有什么建议吗?

【问题讨论】:

  • 你想达到什么目的不清楚,举个例子吧。显示您的代码。
  • 正则表达式是专门为这类事情制作的。你为什么反对使用它们?
  • 这会改变我的大部分代码。我希望有一些类似的函数可以从字符串的开头做一些事情。我想我毕竟必须使用正则表达式
  • 为什么它会改变你的大部分代码?听起来您的代码没有正确考虑。如果您愿意展示您的代码示例,我们可以帮助解决这个问题。
  • 所有答案都是盲猜给出的,您对此负责。切勿发布此类未完成的问题。

标签: ruby enumerate


【解决方案1】:
[1] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.to_i > 0}
=> "456foo"
[2] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.start_with?('123')}                   
=> "123bar"

【讨论】:

    【解决方案2】:

    你可以使用String#[](见doc):

    1.9.3p194 :001 > "123stringvalue"["stringvalue"]
     => "stringvalue" 
    1.9.3p194 :002 > "123stringvalue"["blah"]
     => nil 
    

    如果存在则返回子字符串,否则返回nil

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-16
      • 2011-06-16
      • 2011-12-17
      • 2010-10-21
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多