首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Ruby的self关键字

如何使用Ruby的self关键字
EN

Stack Overflow用户
提问于 2011-07-13 02:56:25
回答 3查看 57.8K关注 0票数 67

根据我对self的理解,它指的是类的当前实例。

无论如何,这不是所有时间的默认行为吗?例如,不是

代码语言:javascript
复制
self.var_one = method(args)

等同于

代码语言:javascript
复制
var_one = method(args) 

如果是,那么self有什么用呢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-13 02:59:44

在大多数情况下,self.foo确实是多余的,因为您可以只编写foo来达到相同的效果,但在这种情况下,它不是多余的,并且需要self

var_one = method(args)将创建一个名为var_one的局部变量,它不会调用任何方法,也不会对self做任何其他事情。

self.var_one = method(args)将使用参数method(args)self上调用方法var_one=

另一种情况下,self的使用是非可选的,如果你想将它作为参数传递给一个方法,即some_method(self) -如果没有self关键字,你就不能这样做。

票数 60
EN

Stack Overflow用户

发布于 2011-07-13 03:14:52

下面是一个例子:

代码语言:javascript
复制
def run miles
  self.miles = miles
end

在这种情况下,self将提供帮助。在大多数情况下,self是冗余的。

票数 4
EN

Stack Overflow用户

发布于 2011-07-13 04:11:01

self的另一个用途是声明类方法(类似于Java语言中的静态方法)。

代码语言:javascript
复制
class foo
 def self.bar
  #do class related stuff here
 end
end

也就是说,您也可以使用def foo.bar代替方法签名。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6669527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档