现在我在一串文本中找到匹配项:
if w.include? 'syn'
w.sub!(/.*?syn\|/, '')
return w unless similar?(word, w)
elsif w.include? 'sim'
w.sub!(/.*?sim\|/, '')
return w unless similar?(word, w)
end
但我希望能够将它们组合起来,就像我在另一个小程序中所做的那样(这只是其中的一个片段):
def plus
self.meta_reduce(:+)
end
def minus
self.meta_reduce(:-)
end
def times
self.make_float
self.meta_reduce(:*)
end
def divide
self.make_float
self.meta_reduce(:/)
end
def make_float args = nil
return args.to_f if args
@value = @value.map {|n| n.to_f }
end
def meta_reduce operation = :sym
if @value.length < 2
raise 'calculator is empty'
end
@value = self.push(@value.pop(2).reduce(operation))
end
我知道在我的数学示例中,方法的区别在于应用的操作,而在另一个方面,区别在于匹配的内容。有没有一种优雅的方法可以通过提供子字符串来动态创建新方法?