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"
.
不知道有什么区别:
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"
.