Ruby 直接在类声明中使用If语句

Ruby 直接在类声明中使用If语句,ruby,Ruby,在Ruby中,为什么可以在类声明中直接使用if语句呢?又名: class ApplicationController < ActionController::Base if foo bar = "x" end end 我知道有一些类实例变量,因为类继承自对象,是同一回事吗 我只需要澄清一下这整件事: 谢谢 没有任何问题。类声明代码通常在self=Class的情况下执行,在定义局部变量(如foo)时没有问题。请记住,您不在类实例中,而是在类本身中 class Applica

在Ruby中,为什么可以在类声明中直接使用if语句呢?又名:

class ApplicationController < ActionController::Base
  if foo
    bar = "x"
  end
end
我知道有一些类实例变量,因为类继承自对象,是同一回事吗

我只需要澄清一下这整件事:


谢谢

没有任何问题。类声明代码通常在self=Class的情况下执行,在定义局部变量(如foo)时没有问题。请记住,您不在类实例中,而是在类本身中

class ApplicationController < ActionController::Base
  foo = true
  if foo
    bar = "x"
  end
  puts bar
end

打印x应该没有任何问题。类声明代码通常在self=Class的情况下执行,在定义局部变量(如foo)时没有问题。请记住,您不在类实例中,而是在类本身中

class ApplicationController < ActionController::Base
  foo = true
  if foo
    bar = "x"
  end
  puts bar
end

应该打印x

类声明的主体是代码,就像Ruby中的其他内容一样。这就是如何使用attr_accessor、private和include等方法——这些都只是类的方法。它是Ruby普遍面向对象哲学的一部分。

类声明的主体是代码,就像Ruby中的其他东西一样。这就是如何使用attr_accessor、private和include等方法——这些都只是类的方法。这是Ruby普遍面向对象哲学的一部分

为什么在Ruby中可以直接在类声明中使用if语句呢

因为它不是一个类声明,它是一个类主体,也就是说,它是可执行代码,就像一个方法主体、一个块主体、一个循环主体或一个脚本主体

为什么在Ruby中可以直接在类声明中使用if语句呢


因为它不是一个类声明,它是一个类主体,也就是说,它是一个可执行代码,就像一个方法主体、一个块主体、一个循环主体或一个脚本主体。

所有好的答案,我都给你,因为我在这里看到了你的答案,它也很有帮助!Thanks@allaire:很好!我想我记得那个答案,并想把它链接起来,但当时我无法找到它。所有好的答案,我都给你了,因为我刚刚在这里看到了你的答案,它也很有帮助!Thanks@allaire:很好!我想我记得那个答案,并想把它联系起来,但当时我找不到。