Self 在方法 return 中是必不可少的吗?

Is Self essential in a method return?

不知道有什么区别:

def replace_title(new_title)
  new_title
end

def replace_title(new_title)
  self.title = new_title
end

我知道之间存在差异:title = new_title 将创建一个局部变量,但是上面的代码会发生什么?

这两个代码都只是 return 你 new_title

的值

下面的代码只是 return 你 new_title

的值
def replace_title(new_title)
  new_title
end

而此代码只会将 title 属性分配给 new_title 并将 return 的值 title 与 [=13= 的值相同]

def replace_title(new_title)
  self.title = new_title
end

但请记住,这不会保存对象的值,因为您没有调用:

self.save
# or
save

一旦您退出操作,该值将重置为 title 之前的值。

定义:

def replace_title(new_title)
  new_title
end

replace_title("abc") returns "abc".

定义:

def replace_title(new_title)
  self.title = new_title
end

replace_title("abc")等同于title=("abc")(因为self.title = new_title等同于title=(new_title))。假设 title= 定义为:

def title=(new_title)
  @title = new_title
end

然后 replace_title("abc") returns "abc",同时将 @title 实例变量设置为 "abc".