Latest web development tutorials

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__:現在のソースファイルの行番号。