Ruby中的=方法在哪个类/模块中?
有人知道=方法在Ruby中属于哪个类/模块吗 我想皈依Ruby中的=方法在哪个类/模块中?,ruby,Ruby,有人知道=方法在Ruby中属于哪个类/模块吗 我想皈依 a = b 进入 所以我必须知道它在哪个类/模块中,这样我才能生成别名 谢谢。The=是赋值运算符。它不能被重新定义 此外,您不能定义新的运算符。正如Jörg所指出的,a equals b与aequalsb相同,或者等同于self.aself.equalsb,因此,您需要一个同时响应:a消息和:equals消息的对象。the=是赋值运算符。它不能被重新定义 此外,您不能定义新的运算符。正如Jörg所指出的,a equals b与Aequa
a = b
进入
所以我必须知道它在哪个类/模块中,这样我才能生成别名
谢谢。The=是赋值运算符。它不能被重新定义
此外,您不能定义新的运算符。正如Jörg所指出的,a equals b与aequalsb相同,或者等同于self.aself.equalsb,因此,您需要一个同时响应:a消息和:equals消息的对象。the=是赋值运算符。它不能被重新定义
此外,您不能定义新的运算符。正如Jörg所指出的,a equals b与Aequals b或等效的self.aself.equals b相同,因此,您需要一个对象来响应:a消息和:equals消息。我试图提供一个答案,但看起来Ruby比我更聪明:
# Adults! Don't try this at work. We're what you call "amateurs"
def a=(*args)
if args.size == 1
STDERR.puts "Assignment"
@a = args[0]
else
STDERR.puts "Comparison"
return args[0] == args[1]
end
end
self.a=([1,2,3])
Assignment
=> [1, 2, 3]
self.a=([1,2,3],[4,5,6])
SyntaxError: (irb):12: syntax error, unexpected ',', expecting ')'
self.a=([1,2,3],[4,5,6])
^
from C:/Ruby19/bin/irb:12:in `<main>'
self.send(:a=, [1,2,3],[4,5,6])
Comparison
=> false
我试图提供一个答案,但看起来Ruby比我聪明:
# Adults! Don't try this at work. We're what you call "amateurs"
def a=(*args)
if args.size == 1
STDERR.puts "Assignment"
@a = args[0]
else
STDERR.puts "Comparison"
return args[0] == args[1]
end
end
self.a=([1,2,3])
Assignment
=> [1, 2, 3]
self.a=([1,2,3],[4,5,6])
SyntaxError: (irb):12: syntax error, unexpected ',', expecting ')'
self.a=([1,2,3],[4,5,6])
^
from C:/Ruby19/bin/irb:12:in `<main>'
self.send(:a=, [1,2,3],[4,5,6])
Comparison
=> false
有没有办法使a等于b作为合成糖?只是为了学习的目的,即使它不是最好的练习,等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于b等于A等于b等于A等于b等于A等于A等于b等于A等于A等于b等于A等于b等于b。因此,您需要一个对象,该对象同时响应:a消息和:equals消息,并且您需要在该对象的上下文中评估您的DSL。但您不是指equals!你是说任务!有没有办法使a等于b作为合成糖?只是为了学习的目的,即使它不是最好的练习,等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于A等于b等于A等于b等于A等于b等于A等于b等于A等于A等于b等于A等于A等于b等于A等于b等于b。因此,您需要一个对象,该对象同时响应:a消息和:equals消息,并且您需要在该对象的上下文中评估您的DSL。但您不是指equals!你是说任务!只是好奇,你为什么要超负荷作业i、 我能理解。只是好奇,你为什么要超负荷作业?==i、 平等,我能理解。