【Ruby】Rubyのリテラルについて詳しく解説します

Ruby

リテラルとは

Rubyのプログラムに直接記述できる値リテラルと呼びます。

Rubyのコードでオブジェクトを入力するときは、毎回リテラルを使います。

Rubyのリテラルは以下のような種類があります。

  • 文字列
  • 数値
  • boolean(true,false), nil
  • シンボル
  • レンジ
  • 配列 
  • ハッシュ
  • 正規表現

文字列

文字列は“”」または”」で表すことができ、””ではエスケープされた文字が補間されます。

puts( "5足す6は#{5 + 6}")
puts("荻野\nは\n足が\n速い")
puts('荻野\nは\n足が\n速い')

# 出力結果
# 5足す6は11
# 荻野
# は
# 足が
# 速い
# 荻野\nは\n足が\n速い

数値

  • 10進数(0dまたは0D)
  • 8進数(0oまたは0Oまたは0)
  • 16進数(0xまたは0X)
  • 2進法(0b または oB)。
  • 浮動小数点(num- or numE1)

Ruby はあらゆる種類の整数を使うことができます。

また 1_00 や 10_0 のように、数値の中に ‘_’ を入れることもできます。

puts(300+1_00+10_0 )
puts("16進数-", 0xaa )
puts("8進数-", 0o222 )
puts("10進数-", 0d170)
puts("2進法-", 0b1010)
puts("浮動小数点-", 1.234E1)
puts(aa)

# 出力結果
# 500
# 16進数-170
# 8進数-146
# 10進数-170
# 2進法-10
# 浮動小数点-12.34
# (irb):276:in `<main>': undefined local variable or method `aa' for main:Object (NameError)

boolean(true,false),nil

  • true(真)
  • false(偽)
  • nil

falseとnilは同じ動作をしますが、nilはunknownまたはemptyを表します。

条件文での動きはfalseと同じですが、返される定数はtrueかfalseのみです。

puts(2+3==5)
puts(2+3!=5)
puts(2+3==nil)

# 出力結果
# true
# false
# false

シンボル

ソース上では文字列のように見えるが、内部的には整数として扱われているオブジェクトです。

「:」コロンから始めて書きます。

# シンボル例
:ruby_symbol


puts(:":player_number#{11+1_1}")

# 出力結果
# :player_number22

レンジ

範囲オブジェクトと呼ばれ、範囲開始値から範囲終了値までを含んだ値を表示します。

for i in 3..6 do
    puts(i)
end

# 出力結果
# 3
# 4
# 5
# 6

配列

配列はオブジェクトの集まりで、‘[‘と’]‘を使って作成します。

players = ['荻野', '藤原', '中村', '山口', '安田']
puts(players[0])
puts(players[3]) 
  
print("負の指数:", players[-3])
  
puts("[start, count]:", players[0, 3], "\n")
  
puts("レンジ使います:", players[0..9])

# 出力結果
# 荻野
# 山口
# 負の指数:中村
# [start, count]:
# 荻野
# 藤原
# 中村
# レンジ使います:
# 荻野
# 藤原
# 中村
# 山口
# 安田

ハッシュ

シンボルキーは一度作成すると変更できないので、完全なキーとしてハッシュを作成することができます。

# 構文
{key:value}

hash1 = {"荻野" => 0, "藤原" => 2, "中村" => 8}
  
hash2 = {荻野:1, 中村:2}
print(hash1.keys, "\n")
print(hash2.keys, "\n")

for i in hash2.keys do
    if i==:荻野 
        print(i, "=>", hash2[i], "\n")
    end
end

# 出力結果
# ["荻野", "藤原", "中村"]
# [:荻野, :中村]
# 荻野=>1

正規表現

Rubyの正規表現は、区切り文字があってもなくても作成できます。

# 構文例
/example/ または %r{example}

line1 = "千葉ロッテマリーンズ";
line2 = "パシフィックリーグ";
  
if ( line1 =~ /千葉(.*)/ )
   puts line1
end
  
if ( line2 =~ %r{リーグ(.*)} )
   puts line2
end

if ( line2 =~ /セントラル(.*)/ )
   puts line2
else
    puts "ありません"
end

# 出力結果
千葉ロッテマリーンズ
パシフィックリーグ
ありません
タイトルとURLをコピーしました