def func(var)和def func =(var)有什么区别?

Rog*_*ist 1 ruby

在类定义中,这两种方法有什么区别?

def func(var)
...
end

def func=(var)
...
end
Run Code Online (Sandbox Code Playgroud)

有没有,或者其中一个无效?

Ali*_*kau 6

它们都是有效的方法定义.但第二个是定义'setter'方法 - 您可以使用以下语法调用此方法:

obj.func = 123
Run Code Online (Sandbox Code Playgroud)

本声明将被翻译成

obj.func=(123)
Run Code Online (Sandbox Code Playgroud)

你可以看看这个答案,我将更详细地解释这个语法.