Rubyの変数
変数が格納されているプログラムで使用することができる任意のデータを保持しています。
Rubyは、変数の5種類をサポートしています。
- 変数(変数):アンダースコアで始まる一般的に小文字、。
-
$
初めに:グローバル変数(グローバル変数)。 -
@
初め:インスタンス変数(インスタンス変数)。 -
@@
はじまり:クラス変数(クラス変数)クラス変数を継承チェーン全体で共有されています - 定数(定数):大文字で開始します。
あなたはこれらの変数を理解することについて前の章で、この章では、変数のこれら5種類の詳細な説明を提供しますしています。
Rubyのグローバル変数
グローバル変数は$で始まります。 初期化されていないグローバル変数は、-wオプションでは、警告が生成され、nilです。
グローバル変数の代入にグローバルな状態を変更しますので、私たちは、グローバル変数の使用をお勧めしません。
次の例は、グローバル変数の使用を示しています。
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $global_variable = 10 class Class1 def print_global puts "全局变量在 Class1 中输出为 #$global_variable" end end class Class2 def print_global puts "全局变量在 Class2 中输出为 #$global_variable" end end class1obj = Class1.new class1obj.print_global class2obj = Class2.new class2obj.print_global
ここで、$ global_variableはグローバル変数です。 これにより、以下の結果が得られます。
注:Rubyでは、あなたは、任意の変数または定数の値にアクセスするには、変数や定数の前に#文字を配置することができます。
全局变量在 Class1 中输出为 10 全局变量在 Class2 中输出为 10
Rubyのインスタンス変数
そもそも@インスタンス変数。 初期化されていないインスタンス変数は、-wオプションでは、警告が生成され、nilです。
次の例では、インスタンス変数の使用を示しています。
#!は/ usr / binに/ルビー Customerクラス デフ初期化する(ID、名前、ADDR) @ CUST_ID = ID @ CUST_NAME =名前 @ Cust_addr = addrは 終了 デフdisplay_details() プット「顧客ID■@ CUST_ID」 プット "顧客名■@ CUST_NAME」 プット「顧客アドレス■@ cust_addr」 終了 終了 #オブジェクトCUST1を作成= Customer.new( "1"、 "ジョン"、 "知恵のアパート、Ludhiya」) cust2 = Customer.new( "2"、 "ポウル」、「新帝国道路、Khandala」) #Callメソッドのcust1.display_details() cust2.display_details()
ここでは、CUST_NAMEおよび@cust_addr @ @のCUST_IDは、インスタンス変数です。 これにより、以下の結果が得られます。
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
Rubyのクラス変数
@@クラス変数の初めに、あなたはメソッド定義の後半で使用する前に初期化する必要があります。
エラーが発生します初期化されていない変数のクラスを参照。 モジュールまたはサブモジュールのクラスまたはサブクラスで定義されたクラス変数を共有することができます。
-wオプションを使用した後、クラス変数をオーバーロードすると、警告が生成されます。
次の例では、クラス変数の使用を示しています。
#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end # 创建对象 cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala") # 调用方法 cust1.total_no_of_customers() cust2.total_no_of_customers()
ここでは、@@ no_of_customersはクラス変数です。 これにより、以下の結果が得られます。
顧客の総数:1 顧客の総数:2
Rubyのローカル変数
ローカル変数は、小文字またはアンダースコア_で始まります。 デフクラスからローカル変数のスコープ、モジュール、または左または右中括弧{}にブレースの対応する端を行います。
あなたが初期化されていないローカル変数を呼び出すと、パラメータなしでメソッドを呼び出すと解釈されます。
初期化されていないローカル変数代入も変数宣言として使用することができます。 変数は、これまでのところ、現在のドメインの最後まで存在します。 Rubyのパーサで決定されたライフサイクルのローカル変数。
上記の例では、ローカル変数は、ID、名前、addrがあります。
Rubyの定数
大文字と定数です。 クラスやモジュールの定数はグローバルにアクセスすることができます外部で定義されたクラスやモジュール内からアクセスすることができ、クラスやモジュール内の定数を定義します。
定数は、メソッド内で定義することはできません。 初期化されていない一定のエラーが発生したリファレンス。 すでに初期化された定数値は、警告を生成します。
#!は/ usr / binに/ルビー # - * - コーディング:UTF-8 - * - クラス例 VAR1 = 100 VAR2 = 200 デフショー 置く「最初の定数は、#{VAR1}です " 置く「第2の定数は、#{VAR2}です " 終了 終了 #Objectオブジェクトを作成します= Example.new() object.show
ここで、VAR1とVAR2は定数です。 これにより、以下の結果が得られます。
100の第1の一定値 第2の定数は200です
Rubyの擬似変数
彼らは、ローカル変数の出現と、特別な変数であるが、一定のように動作します。 あなたはこれらの変数に任意の値を割り当てることはできません。
- 自己:現在のメソッドのレシーバ・オブジェクト。
- 真:真の値の代表。
- 偽:値がfalseを表します。
- ゼロ:代表未定義の値。
- __FILE__:ソースファイルの現在の名前。
- __LINE__:現在のソースファイルの行番号。