【问题标题】:Ruby what does a line with just self and no .method do?Ruby 只有 self 而没有 .method 的行有什么作用?
【发布时间】:2020-08-17 16:28:10
【问题描述】:

作为一个从未用 Ruby 编程过的 C# 学生,我试图理解这段 Ruby 代码。除了上面只有self 的那一行之外,我很清楚其中的大部分内容。对于理解方面的任何帮助,我将不胜感激。我最好的猜测是 self 用于调用类初始化函数,但我不是 100% 确定。

def link(cell, bidi=true)
  @links[cell] = true
  cell.link(self,false) if bidi
  self
end

【问题讨论】:

    标签: ruby methods return self


    【解决方案1】:

    每个方法都会返回一些东西。通过显式的return 行,或者如果没有显式返回,则返回最后执行的行。

    在您的示例中,self 导致该方法返回作为该方法的接收者的对象...通常是定义该方法的类的实例,尽管它可以被其他类继承,或者它可能来自包含的模块(mixin)。

    【讨论】:

    • 非常感谢。所以这相当于 C# 中的return this;
    • 我想是的。我对 C# 的了解可以放在一个很小的纸袋里。但是,如果(例如)我看到def Dog; def bark; puts "bow wow"; self; end; end,那么我预计dog = Dog.new; this_dog = dog.bark 然后this_dogdog 将引用同一个Dog 对象。
    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 2013-11-06
    • 2022-07-01
    • 2010-09-14
    • 2019-05-24
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多