2-7 主な組み込みクラス 2-7-1 数値(Numeric)
In [4]:
# 復習
p 1
p Fixnum.ancestors
p Float.ancestors
Out[4]:
In [17]:
# 10進数
p 0d5
# 16進数
p 0xAA
# 2進数
p 0b110
# 大きな数字を見やすくする
p 1_000_000_000
# アンダースコアはどこでも入るの? ※できるけど、アンチパターン!
p 1_0_0_00_000_0000
Out[17]:
2-7-2 文字列(String) ダブルクォートでは #{...} を用いた式展開ができます。
In [31]:
p 'result:\t#{1+1}'
p "result:\t#{1+1}"
p 'It\'s mine'
paragraph = "99 test, \
99 hoge."
p paragraph
# 上記は使わずに << 演算子を用いる
str = <<-EOS
1行目
2行目
EOS
p str
str2 = <<'EOS'
#{foo}\t#{bar}
EOS
p str2
weather = 'rainy'
# 式展開とバックスラッシュ記法は無効
p %q(It's #{weather})
# 式展開できる
p %(It's #{weather})
p %Q(It's #{weather})
Out[31]:
2-7-3 シンボル(Symbol)
「:ruby」のように先頭にコロンをつけた文字の並びはシンボルリテラルです。
シンボルは文字列に似ていますが、読み書きのしやすさから「attr_accessor :lenght」のように
識別子やキーワード的な単語を表現するのに適しています。
In [34]:
p :ruby
p :ruby=
Out[34]:
2-7-4 配列(Array)
配列はブラケット([])の中に要素となる値をカンマ区切りで記述します。
In [49]:
# 異なる要素を入れる
array = ['Alice', 4423, 3.14, nil, false]
p array
p array[0]
# 配列の要素の取り方
people = ['Alice', 'Bob', 'Carol']
p people[0]
p people[10]
p people[2]
p people[-1]
# 途中に新たな要素を格納
people[2] = 'Hoge'
p people
people[5] = 'Piyo'
p people
# %を使った記法
hoge2 = %w(Alice Bob Hoge)
p hoge2
hoge2 = %w(Alice\ Bob Hoge\ Piyo)
p hoge2
hoge3 = %i(red bule green)
p hoge3
Out[49]:
2-7-5 ハッシュ(Hash)
ハッシュはいわゆる連想配列です。{ キー => 要素}
In [57]:
colors = {'red' => 'ff0000', 'green' => 'hoge', 'blue' => 'piyo'}
# 要素を参照
p colors['blue']
p colors['black']
# キーはシンボルがよく用いられる
colors2 = {:red => 'ff0000', :green => 'hoge', :blue => 'piyo'}
p colors2[:green]
# 1.9以降では新しいリテラルが追加された。
colors3 = {red: 'ff0000', green: 'hoge', blue: 'piyo'}
p colors3[:blue]
Out[57]: