💎
【Ruby 1日目】基本文法 - 変数とデータ型
はじめに
Rubyの変数とデータ型について、Ruby 3.4の仕様に基づいて解説します。Rubyは動的型付け言語であり、変数宣言時に型を指定する必要はありません。
基本概念
Rubyには主要なデータ型として、Integer(整数)、Float(浮動小数点数)、String(文字列)、Symbol(シンボル)、Array(配列)、Hash(ハッシュ)、TrueClass/FalseClass(真偽値)、NilClass(nil)があります。
変数には、ローカル変数、インスタンス変数(@変数)、クラス変数(@@変数)、グローバル変数($変数)、定数(大文字始まり)の5種類があります。
使い方
# ローカル変数
name = "Ruby"
age = 30
# インスタンス変数
@instance_var = "instance"
# クラス変数
@@class_var = "class"
# グローバル変数
$global_var = "global"
# 定数
CONSTANT = "constant"
# 各種データ型
integer = 42
float = 3.14
string = "Hello"
symbol = :ruby
array = [1, 2, 3]
hash = { key: "value" }
boolean = true
nil_value = nil
# 型確認
puts integer.class #=> Integer
puts string.class #=> String
puts symbol.class #=> Symbol
よくあるユースケース
変数のスコープ管理
class Person
@@count = 0 # クラス変数
def initialize(name)
@name = name # インスタンス変数
@@count += 1
end
def greet
message = "Hello" # ローカル変数
puts "#{message}, I'm #{@name}"
end
def self.total_count
@@count
end
end
person = Person.new("Alice")
person.greet #=> Hello, I'm Alice
puts Person.total_count #=> 1
型の動的な性質を活用
def process(value)
case value
when Integer
value * 2
when String
value.upcase
when Array
value.map { |v| v * 2 }
else
value
end
end
puts process(5) #=> 10
puts process("hello") #=> HELLO
p process([1, 2, 3]) #=> [2, 4, 6]
注意点とベストプラクティス
- ローカル変数は小文字またはアンダースコアで始める
- 定数は再代入すると警告が出るが、エラーにはならない(freeze推奨)
- グローバル変数は極力避け、必要な場合はモジュールの定数を使う
- 変数名は意味のある名前を付ける(スネークケース推奨)
- Ruby 3.0以降(3.4で強化)では、定数の凍結が推奨される
まとめ
変数とデータ型について学びました。実践的なコード例を通じて、Ruby 3.4の機能を活用できるようになりましょう。
Discussion