Ruby-variables
Ruby-変数、定数、リテラル
変数は、任意のプログラムで使用されるデータを保持するメモリの場所です。
Rubyでサポートされる変数には5つのタイプがあります。 前の章でも、これらの変数について簡単に説明しました。 この5つのタイプの変数については、この章で説明します。
Rubyグローバル変数
グローバル変数は$で始まります。 初期化されていないグローバル変数の値はnilで、-wオプションで警告を生成します。
グローバル変数への割り当ては、グローバルステータスを変更します。 グローバル変数を使用することは推奨されません。 彼らはプログラムを不可解にします。
グローバル変数の使用方法を示す例を次に示します。
ここで、$ global_variableはグローバル変数です。 これは、次の結果を生成します-
注-Rubyでは、変数または定数の直前にハッシュ(#)文字を置くことにより、変数または定数の値にアクセスできます。
Rubyインスタンス変数
インスタンス変数は@で始まります。 初期化されていないインスタンス変数の値は_nil_であり、-wオプションで警告を生成します。
インスタンス変数の使用法を示す例を次に示します。
ここで、@ cust_id、@ cust_name、@ cust_addrはインスタンス変数です。 これは、次の結果を生成します-
Rubyクラス変数
クラス変数は@@で始まりますメソッド定義で使用する前に初期化する必要があります。
初期化されていないクラス変数を参照すると、エラーが発生します。 クラス変数は、クラス変数が定義されているクラスまたはモジュールの子孫の間で共有されます。
クラス変数をオーバーライドすると、-wオプションで警告が生成されます。
これはクラス変数の使用法を示す例です-
ここで@@ no_of_customersはクラス変数です。 これは、次の結果を生成します-
Rubyローカル変数
ローカル変数は、小文字または_で始まります。 ローカル変数のスコープは、クラス、モジュール、def、doから対応する終わりまで、またはブロックの開き中括弧から閉じ中括弧\ {}までの範囲です。
初期化されていないローカル変数が参照されると、引数のないメソッドの呼び出しとして解釈されます。
初期化されていないローカル変数への割り当ては、変数宣言としても機能します。 変数は、現在のスコープの終わりに達するまで存在し始めます。 ローカル変数の有効期間は、Rubyがプログラムを解析するときに決定されます。
上記の例では、ローカル変数はid、name、およびaddrです。
ルビー定数
定数は大文字で始まります。 クラスまたはモジュール内で定義された定数はそのクラスまたはモジュール内からアクセスでき、クラスまたはモジュール外で定義された定数はグローバルにアクセスできます。
メソッド内で定数を定義することはできません。 初期化されていない定数を参照すると、エラーが発生します。 すでに初期化されている定数に割り当てを行うと、警告が生成されます。
ここで、VAR1とVAR2は定数です。 これは、次の結果を生成します-
ルビーの擬似変数
これらはローカル変数のように見えますが、定数のように動作する特別な変数です。 これらの変数に値を割り当てることはできません。
- self -現在のメソッドの受信者オブジェクト。
- true -trueを表す値。
- false -falseを表す値。
- nil -未定義を表す値。
- FILE -現在のソースファイルの名前。
- LINE -ソースファイルの現在の行番号。
Rubyの基本的なリテラル
Rubyがリテラルに使用するルールはシンプルで直感的です。 このセクションでは、すべての基本的なRubyリテラルについて説明します。
整数
Rubyは整数をサポートしています。 整数の範囲は-2 ^ 30 ^〜2 ^ 30-1 ^または-2 ^ 62 ^〜2 ^ 62-1 ^です。 この範囲内の整数はクラス_Fixnum_のオブジェクトであり、この範囲外の整数はクラス_Bignum_のオブジェクトに格納されます。
オプションの先行符号、オプションのベースインジケータ(8進数の場合は0、16進数の場合は0x、2進数の場合は0b)を使用して整数を書き込み、その後に適切なベースの数字列を続けます。 数字文字列ではアンダースコア文字は無視されます。
ASCII文字に対応する整数値を取得したり、疑問符を前に付けてシーケンスをエスケープすることもできます。
例
注-クラスとオブジェクトについては、このチュートリアルの別の章で説明しています。
浮動小数点数
Rubyは浮動小数点数をサポートしています。 これらも数字ですが、小数部があります。 浮動小数点数は_Float_クラスのオブジェクトであり、次のいずれかです-
例
文字列リテラル
Ruby文字列は、単に8ビットバイトのシーケンスであり、クラスStringのオブジェクトです。 二重引用符で囲まれた文字列では置換とバックスラッシュ表記が許可されますが、単一引用符で囲まれた文字列では置換が許可されず、\\と\ 'のみにバックスラッシュ表記が許可されます
例
これは、次の結果を生成します-
シーケンス*#\ {expr} *を使用して、任意のRuby式の値を文字列に置き換えることができます。 ここで、exprは任意のルビー式です。
これは、次の結果を生成します-
バックスラッシュ表記
以下は、Rubyがサポートするバックスラッシュ表記法のリストです-
Notation | Character represented |
---|---|
\n | Newline (0x0a) |
\r | Carriage return (0x0d) |
\f | Formfeed (0x0c) |
\b | Backspace (0x08) |
\a | Bell (0x07) |
\e | Escape (0x1b) |
\s | Space (0x20) |
\nnn | Octal notation (n being 0-7) |
\xnn | Hexadecimal notation (n being 0-9, a-f, or A-F) |
\cx, \C-x | Control-x |
\M-x | Meta-x (c |
0x80) | \M-\C-x |
Meta-Control-x | \x |
Ruby文字列の詳細については、link:/ruby/ruby_strings [Ruby Strings]をご覧ください。
Rubyの配列
Ruby配列のリテラルは、角括弧の間にオブジェクト参照のコンマ区切りのシリーズを配置することによって作成されます。 末尾のコンマは無視されます。
例
これは、次の結果を生成します-
Ruby配列の詳細については、link:/ruby/ruby_arrays [Ruby Arrays]を参照してください。
ルビーハッシュ
リテラルRuby Hashは、キーと値の間にカンマまたはシーケンス⇒のいずれかを使用して、キーと値のペアのリストを中括弧の間に配置することによって作成されます。 末尾のコンマは無視されます。
例
これは、次の結果を生成します-
Rubyハッシュの詳細については、リンク:/ruby/ruby_hashes [Rubyハッシュ]を参照してください。
ルビーレンジ
範囲は、開始と終了のある値のセットである間隔を表します。 範囲は、s..eおよびs … eリテラルを使用して、またはRange.newを使用して構築できます。
.を使用して構築された範囲 開始から終了まで包括的に実行します。 を使用して作成されたもの… 終了値を除外します。 イテレータとして使用する場合、範囲はシーケンス内の各値を返します。.
範囲(1..5)は1、2、3、4、5の値を含むことを意味し、範囲(1 … 5)は1、2、3、4の値を含むことを意味します。
例
これは、次の結果を生成します-
Rubyの範囲の詳細については、link:/ruby/ruby_ranges [Ruby Ranges]をご覧ください。