【Ruby】はじめてのRuby

を読んでのメモ。
1章~2章終わり まで。


出力
print("Hello, Ruby.")
=> Hello, Ruby
#そのまま出力
puts("Hello,", " Ruby.")
=> Hello,
Ruby.
#putsは文字列の末尾で改行
p "100"
=> "100"
p 100
=> 100
#文字列と数値を違った形で表示
print("Hello,\nRuby.")
=> Hello,
Ruby.
#\nで改行
print('Hello,\nruby.')
=> Hello,\nruby.
#''は中の文字をそのまま出力する

なお、 () は省略できる。
できるが、わかりづらい場合は () をつけたほうがいい場合もある。

変数(代入)
name = "secon"
age = 20
print name, "さん", age, "さい"
=> seconさん20さい
puts "#{name}さん#{age}さい"
=> seconさん20さい
# #{} と書くことで文字列にデータを埋め込める


条件判断
a = 20
if a >= 10 then
  puts "big"
else
  puts "small"
end
=> big

thenは省略可能。

i = 1
while i <= 10
  print i
  i = i + 1
end
=> 12345678910
i = 1
10.times do
  print i
  i = i + 1
end
=> 12345678910

timesメソッドはイテレータ

基本的にendで〆ればOKか。

配列
names = ["first", "second", "third"]
#配列は[]で囲むこと
mixed = ["first", "2", "third"]
#一つの配列に複数の種類のオブジェクトを混ぜれる
names[0]
=> "first"
#要素の取り出し
names.size
#配列の大きさを返す
=> 3
names.each do |n|
  puts n
end
#配列の要素すべてにアクセス

|| の中は変数。


ハッシュ
sym = :foo  #シンボル「:foo」の表現
sym2 = :"foo" #上と同様の意味
irb> sym
=> :foo
irb> sym.to_s #.to_sで文字列変換(to_symでシンボル変換)
=> "foo"
address = {:names => "secon", :age => 20, :tel => "000-1111-2222"}
#{}で囲うこと
irb> age
=> 20

シンボルがキーの場合は、以下のように書くことも可能。

address = {names: "secon," age: 20, tel: "000-1111-2222"} 
address.each do |key, value|
  puts "#{key}: #{value}"
end
#ハッシュ用each


正規表現
irb> /ruby/ =~ "aaaruby"
=> 3
#先頭の文字の位置が返ってくる
irb> /ruby/ =~ "aaaaaaa"
=> nil
#存在しない場合はnilが返される
irb> /ruby/ =~ "aaaRuby"
=> nil
irb> /ruby/i =~ "aaaRiby"
=> 3
#/iで大文字と小文字の区別しないマッチングを行う

nilはオブジェクトが存在しないことを表す特別な値のこと。