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
のメソッドを使用する方法です。これらはすべて、クラスの単なるメソッドです。これは、Rubyの広範なオブジェクト指向の哲学の一部です。private
include
問題なく。クラス宣言コードは通常、self = class 自体で実行され、foo などのローカル変数を定義しても問題ありません。クラスインスタンスではなく、クラス自体にいることを覚えておいてください。
class ApplicationController < ActionController::Base
foo = true
if foo
bar = "x"
end
puts bar
end
「x」を出力する必要があります