Ruby字符串中的实例方法?

时间:2014-05-20 22:52:03

标签: ruby string class instance

我被要求创建一些函数,然后将它们作为String类中的实例方法使用。我怎么能在Ruby中做到这一点?

我在模块中创建了函数。骨架就是这样的:

module My_module
def xxxx(string)
end
(...)
end

class String
  include My_module
end

2 个答案:

答案 0 :(得分:0)

在Ruby中,可以打开和修改内置类,这是一种强大的技术,但是如果没有充分的理由将内部类添加到内置类中,它被认为是不好的形式。

您需要使用自定义函数执行此类操作(此处我在String类中定义了自定义palindrome函数。

class String
   # Returns true if the string is its own reverse.
   def palindrome?
     self == self.reverse
   end
end

这样做可以直接调用String对象上的方法。

例如:

"level".palindrome? # => true

答案 1 :(得分:0)

你可以像你一样完成:

module MyModule
  def speak(name)
    puts "#{self} the String says hello to #{name}"
  end
end

class String
  include MyModule
end

"Joe".speak("danslz")



--output:--
Joe the String says hello to danslz
  

我被要求做一些功能,

模块是组织函数的好方法。

  

除了不需要发送字符串作为参数

除非该方法以字符串作为参数,例如String#new,String#[],String#< =>等等。