我有一个类有一个方法:

def value=(valueIN)
  some code
end

这正是我想要的:
(class instance).value="new data"

如果我可以重写这个类的=,这样就不必做value=,这看起来会更干净。首先,我试着:
def =(valueIN)
  some code
end

但这给了我一个错误,所以我试着:
def self=(valueIN)
  some code
end

这不会导致错误,但当我这样做时,它不起作用:
(class instance)="new data"

作业是不是课堂上不可更改的?如果做不到这一点,其实没什么大不了的,但我希望我错过了一些基本的东西。

最佳答案

对不起,你不能这样做。当您编写foo = bar时,您只是分配一个变量,而不是调用任何方法。它只对一个方法调用进行desugar,和其他地方一样,方法调用的接收者是点之前的东西。

09-25 20:11