ruby - 在 Ruby 中,在类方法内部,self 是类还是实例?

标签 ruby class instance self class-method

我知道 self 是实例方法中的实例。那么,self 是类方法内部的类吗?例如,以下内容是否适用于 Rails?

class Post < ActiveRecord::Base
  def self.cool_post
    self.find_by_name("cool")
  end
end

最佳答案

没错。类方法中的 self 是类本身。 (也在类定义内部,例如 def self.coolpost 中的 self。)

您可以使用 irb 轻松测试这些花絮:

class Foo
  def self.bar
    puts self.inspect
  end
end

Foo.bar  # => Foo

关于ruby - 在 Ruby 中,在类方法内部,self 是类还是实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4349446/

相关文章:

ruby-on-rails - Rails 范围不返回正确的数据

c++ - 为什么一个类的静态成员对于所有对象都是一样的?

c++ - 错误 C2678 : binary '=' : no operator found which takes a left-hand operand of type 'const Recipe' (or there is no acceptable conversion)

c++ - 我的类的静态实例函数没有按预期工作

java - 通过名称创建内部静态类实例

python - Python 中只有一个 True 和一个 False 对象吗?

ruby-on-rails - 如何在不编辑 gem 源的情况下向 ruby​​ gem 添加方法?

ruby-on-rails - 如何在 Rails/ActiveRecord 中同时使用多个聚合函数?

ruby - 试图让客户端在 Ruby 制作的 TCP 服务器上显示命令输出

python - 根据目录名称 : What are the consequences? 使用 importlib 加载同名类