Blog Article
Rubyの基本的な文字列操作・条件分岐・メソッド定義について
文字列操作
%記法で文字列作成
Rubyでは、%
記法を使用して文字列を作成することができます。この記法を使うと、通常のダブルクォーテーションやシングルクォーテーションを使わずに、文字列を生成できます。特に、クォーテーションを含む文字列を扱う場合に便利です。
基本例
str1 = %q(シングルクォーテーションの文字列)
str2 = %Q(ダブルクォーテーションの文字列)
puts str1 #=> シングルクォーテーションの文字列
puts str2 #=> ダブルクォーテーションの文字列
応用例
name = "田中さん"
greeting = %Q(こんにちは、#{name}!)
puts greeting #=> こんにちは、田中さん!
%Q
を使うことで、文字列の中に変数を埋め込むことが可能です。ダブルクォーテーションの代わりに%Q
を使うと、文字列内で式展開が使えます。
ヒアドキュメントとは
ヒアドキュメントは、複数行にわたる長い文字列を簡単に作成する方法です。特定の識別子を使って、複数行の文字列をそのまま定義できます。
基本例
text = <<EOS
これは
複数行にわたる
文字列です。
EOS
puts text
応用例
name = "角田さん"
text = <<GREETING
こんにちは、#{name}!
お元気ですか?
またお会いできる日を楽しみにしています。
GREETING
puts text
ヒアドキュメントでは、変数や式展開も使えます。複数行のメッセージを扱うときに非常に便利です。
sprintfメソッドを使った文字列作成
sprintf
メソッドを使うと、フォーマットを指定して文字列を作成できます。数値を特定の桁数に揃えたり、フォーマットを統一する場合に便利です。
基本例
formatted = sprintf("%0.2f", 3.14159)
puts formatted #=> "3.14"
応用例
name = "田中さん"
age = 30
puts sprintf("名前: %s, 年齢: %d歳", name, age)
#=> 名前: 田中さん, 年齢: 30歳
%s
で文字列、%d
で整数をフォーマットします。このようにして、異なる型のデータを一つのフォーマットにまとめて表示できます。
真偽値と条件分岐
や ||
について
Rubyでは、論理演算子 (AND)と
||
(OR)を使って条件を組み合わせることができます。
基本例
a = true
b = false
puts a && b #=> false
puts a || b #=> true
応用例
age = 25
citizen = true
if age >= 18 && citizen
puts "選挙権があります"
else
puts "選挙権がありません"
end
ここでは、年齢が18歳以上で市民権を持っている場合に「選挙権があります」と表示します。は両方の条件がtrueの場合にのみ実行されます。
case
文
case
文は、複数の条件に基づいて異なる処理を行いたい場合に使います。複数のif
文を使う代わりに、case
文でスッキリと記述できます。
基本例
fruit = "apple"
case fruit
when "apple"
puts "りんごです"
when "banana"
puts "バナナです"
else
puts "不明な果物です"
end
応用例
grade = "B"
case grade
when "A"
puts "素晴らしい!"
when "B"
puts "よくできました!"
when "C"
puts "もう少し頑張りましょう。"
else
puts "成績が不明です。"
end
この例では、成績に応じて異なるメッセージを表示します。case
文を使うことで、条件分岐がより読みやすくなります。
条件演算子
条件演算子 (?:
)は、簡単な条件分岐を行うときに使います。if
文を一行で書きたいときに便利です。
基本例
age = 20
message = age >= 18 ? "成人です" : "未成年です"
puts message #=> 成人です
応用例
score = 85
result = score >= 90 ? "優" : score >= 70 ? "良" : "可"
puts result #=> 良
条件が複雑な場合でも、一行で結果を返すことができます。
メソッド定義について
?
や !
で終わるメソッド
Rubyでは、?
や!
で終わるメソッド名が存在します。?
が付くメソッドは通常、真偽値を返すことが期待されます。一方、!
が付くメソッドは、通常のメソッドよりも破壊的な処理を行うことが多いです。
基本例
# ? メソッドの例
puts "apple".include?("a") # => true
# ! メソッドの例
arr = [1, 2, 3]
arr.reverse!
puts arr #=> [3, 2, 1]
応用例
# ?メソッドの応用例
number = 10
puts number.even? #=> true (偶数かどうかをチェック)
# !メソッドの応用例
text = " 余分なスペース "
text.strip!
puts text #=> "余分なスペース"
!
を使うメソッドは元のオブジェクトを変更するので、注意して使う必要があります。
puts
, print
, p
, pp
メソッドについて
Rubyでは、データをコンソールに出力するためにputs
、print
、p
、pp
のメソッドを使います。それぞれ微妙に挙動が異なります。
基本例
puts "Hello" # 改行して表示
print "Hello" # 改行せずに表示
p "Hello" # デバッグ用にオブジェクトの詳細を表示
応用例
# ppメソッドは複雑なデータ構造を見やすく表示する
require 'pp'
data = {name: "田中さん", age: 30, interests: ["プログラミング", "映画鑑賞"]}
pp data
pp
は複雑なデータ構造を見やすくフォーマットして表示するため、デバッグ時に役立ちます。