はじめに
Rubyにおける変数の使い方を詳しく見ていきましょう。
変数はデータの格納庫と考えることができます。Rubyには、それぞれ異なるスコープと特性を持つ4つの主要な変数の種類が存在します。
ローカル変数
ローカル変数は、その名の通り、特定の局所的な範囲(メソッドやブロック内など)でのみ有効な変数です。
1 2 3 4 5 6 |
def my_method local_variable = "Hello, I'm a local variable" puts local_variable end my_method |
出力結果
Hello, I'm a local variable
グローバル変数
グローバル変数は、プログラム全体、すなわちどのようなスコープからでもアクセス可能な変数です。
グローバル変数の名前は"$"で始まります。
1 2 3 4 5 6 7 |
$global_variable = "Hello, I'm a global variable" def my_method puts $global_variable end my_method |
出力結果
Hello, I'm a global variable
インスタンス変数
インスタンス変数は、特定のオブジェクト(クラスのインスタンス)内で共有される変数です。
インスタンス変数の名前は"@"で始まります。
1 2 3 4 5 6 7 8 9 10 11 12 |
class MyClass def initialize @instance_variable = "Hello, I'm an instance variable" end def print_variable puts @instance_variable end end obj = MyClass.new obj.print_variable |
出力結果
Hello, I'm an instance variable
クラス変数
クラス変数は、そのクラスおよびそのクラスのすべてのインスタンスで共有される変数です。
クラス変数の名前は"@@ "で始まります。
1 2 3 4 5 6 7 8 9 |
class MyClass @@class_variable = "Hello, I'm a class variable" def self.print_variable puts @@class_variable end end MyClass.print_variable |
出力結果
Hello, I'm a class variable
エラーとその対処法
変数を使用する際には、定義されていない変数を呼び出すとエラーが発生します。
そのような場合は、変数が適切に定義されていることを確認してください。
1 |
puts not_defined_variable |
出力結果
NameError: undefined local variable or method `not_defined_variable' for main:Object
変数の命名規則
Rubyの変数には命名規則があります。
変数名はアルファベット、数字、アンダースコア(_)で構成できますが、先頭はアルファベットまたはアンダースコアでなければなりません。
また、変数名に大文字を使うと定数と見なされます。
1 2 3 |
valid_variable = "This is valid" _invalid_variable = "This is also valid" 9invalid_variable = "This is not valid" |
出力結果
SyntaxError: (irb):3: syntax error, unexpected '=', expecting end-of-input 9invalid_variable = "This is not valid" ^
変数とスコープ
変数の種類によって、その変数がアクセスできる範囲、つまりスコープが変わります。
ローカル変数はその定義された場所(メソッドやブロック内など)だけで有効です。
インスタンス変数は、そのクラスの特定のインスタンス内で有効です。
クラス変数は、そのクラスとそのクラスのすべてのインスタンスで有効です。
グローバル変数はプログラム全体で有効です。
Rubyのデータ型と変数の基本
Rubyでは、データの型として主に以下のものが存在します:
・数値型(Integer, Float)
・文字列型(String)
・論理型(TrueClass/FalseClass)
・配列型(Array)
・ハッシュ型(Hash)
これらの型を理解することは、Rubyでプログラミングを行う上で必要不可欠です。
数値型(Integer, Float)
数値型には、整数を表すInteger型と浮動小数点数を表すFloat型があります。以下のソースコードでは、それぞれの型の変数を宣言し、その型を確認しています。
1 2 3 4 5 |
int_var = 10 float_var = 10.0 puts int_var.class # Integer puts float_var.class # Float |
出力結果 Integer
Float
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
文字列型(String)
文字列型はString型で、ダブルクォート("")またはシングルクォート('')で囲んだ文字列を扱います。
以下のソースコードでは、String型の変数を宣言し、その型を確認しています。
1 2 |
str_var = "Hello, Ruby!" puts str_var.class # String |
出力結果 String
論理型(TrueClass/FalseClass)
論理型はTrueClassとFalseClassで、それぞれtrueとfalseの値を表します。
以下のソースコードでは、TrueClassとFalseClassの変数を宣言し、その型を確認しています。
1 2 3 4 5 |
true_var = true false_var = false puts true_var.class # TrueClass puts false_var.class # FalseClass |
出力結果 TrueClass
FalseClass
配列型(Array)
配列型はArray型で、複数の要素を順序付けて格納することができます。
以下のソースコードでは、Array型の変数を宣言し、その型を確認しています。
1 2 |
array_var = [1, 2, 3, 4, 5] puts array_var.class # Array |
出力結果 Array
ハッシュ型(Hash)
ハッシュ型はHash型で、キーと値の組み合わせでデータを格納します。
以下のソースコードでは、Hash型の変数を宣言し、その型を確認しています。
1 2 |
hash_var = { "key1" => "value1", "key2" => "value2" } puts hash_var.class # Hash |
出力結果 Hash
Rubyの型キャスト
Rubyでは、データ型を別の型に変換することが可能です。これを「型キャスト」と言います。
主な型キャストのメソッドには以下のようなものがあります:
・to_i: 任意の型を整数(Integer)に変換
・to_f: 任意の型を浮動小数点数(Float)に変換
・to_s: 任意の型を文字列(String)に変換
これらのメソッドを用いて、必要に応じてデータ型を変換することができます。
型キャストの例:to_iメソッドの使い方
1 2 3 4 5 6 7 8 9 10 |
string_var = "42" float_var = 42.0 # 文字列を整数に変換 integer_var = string_var.to_i puts integer_var.class # Integer # 浮動小数点数を整数に変換 integer_var2 = float_var.to_i puts integer_var2.class # Integer |
出力結果 Integer
Integer
型キャストの例:to_fメソッド
1 2 3 4 5 6 7 8 9 10 |
string_var = "42" integer_var = 42 # 文字列を浮動小数点数に変換 float_var = string_var.to_f puts float_var.class # Float # 整数を浮動小数点数に変換 float_var2 = integer_var.to_f puts float_var2.class # Float |
出力結果 Float
Float
型キャストの例:to_sメソッド
1 2 3 4 5 6 7 8 9 10 |
integer_var = 42 float_var = 42.0 # 整数を文字列に変換 string_var = integer_var.to_s puts string_var.class # String # 浮動小数点数を文字列に変換 string_var2 = float_var.to_s puts string_var2.class # String |
出力結果 String
String
まとめ
この記事では、Rubyの変数とその型について学びました。また、型キャストを使ってデータ型を変換する方法も解説しました。
Rubyの変数は、扱いやすく、型が柔軟なので、プログラミングが楽しくなりますね!
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!