为什么在 Ruby 中可以直接在类声明中直接使用 if 语句?又名:
class ApplicationController < ActionController::Base
if foo
bar = "x"
end
end
我知道有一些类实例变量,因为类继承自对象,是一样的吗?
我只需要对整个事情进行一些澄清:)
谢谢!
为什么在 Ruby 中可以直接在类声明中直接使用 if 语句?又名:
class ApplicationController < ActionController::Base
if foo
bar = "x"
end
end
我知道有一些类实例变量,因为类继承自对象,是一样的吗?
我只需要对整个事情进行一些澄清:)
谢谢!
为什么在 Ruby 中可以直接在类声明中直接使用 if 语句
因为它不是一个类“声明”,它是一个类体,即它是可执行代码,就像方法体、块体、循环体或脚本体一样。
类声明的主体是代码,就像 Ruby 中的其他所有内容一样。这就是你可以使用方法的方式attr_accessor
,private
和include
——这些都只是类的方法。它是 Ruby 普遍面向对象哲学的一部分。
没有任何问题。类声明代码通常会被执行,self = class 本身,定义局部变量如 foo 没有问题。请记住,您不是在类实例中,而是在类本身中。
class ApplicationController < ActionController::Base
foo = true
if foo
bar = "x"
end
puts bar
end
应该打印“x”