我被要求创建一些函数,然后将它们作为String类中的实例方法使用。我怎么能在Ruby中做到这一点?
我在模块中创建了函数。骨架就是这样的:
module My_module
def xxxx(string)
end
(...)
end
class String
include My_module
end
答案 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#< =>等等。