Mat*_*hew 3 ruby ruby-on-rails operator-overloading operators
我不知道如何为一个方法重载<<运算符.这就是我认为它会起作用的方式:
def roles<<(roles)
...
end
Run Code Online (Sandbox Code Playgroud)
然而,这会引发错误.有什么建议?
你需要在课堂上这样做.像这样:
class Whatever
attr_accessor :roles
def initialize
@roles = []
end
end
Run Code Online (Sandbox Code Playgroud)
你真的没有<<roles方法.你必须有一个roles支持<<运营商的访问器.
编辑:我已经更新了代码.现在您可以看到<<操作符应该如何重载,但您也可以执行该操作roles<<.以下是它的一小部分用法:
w = Whatever.new
w << "overload for object called"
# and overloads for the roles array
w.roles << "first role"
w.roles << "second role"
Run Code Online (Sandbox Code Playgroud)