gotagota日記

「面白きことは良きことなり」

Rubyの学習メモ

Rubyをdotinstallなどで学習したので自分用にメモ。

p三兄弟の違い

print -> 終わった後に改行がない

puts -> 改行あり

p -> データ形式がわかるように表示

  • 複数行のコメントの書き方 =begin コメント コメント =end

"" と '' の違い

  • "" は、 1 #{変数}で変数を展開 2 特殊文字を展開 することができる。

  • ''はできない。

! と ? の違い

! 破壊的メソッド # 元データを書き換える ? 真偽値を返すメソッド # true か false を返す

%記法

※ 共通して、小文字 + % だとシングルクォーテーションで囲った時と同様の働き

s = %Q(hello) -> 区切り文字を使うときとかに有効

a = %W(a b c) -> 要素が文字列の配列

条件分岐

if x # x == true と同義
  puts "..."
end

条件演算子

a = 条件 ? b : c -> 条件が、真ならbを、偽ならcを返せ

例。

b = 10
c = 20
a = b > c ? b : c
puts a

実行結果 20

多重代入

変数をまとめて処理する。 b, c = 10, 20

case文

case 比較したいオブジェクト
when 値
  処理
when 値
  処理
when 値
  処理
else
  処理
end

例。

signal = "red"

case signal
when "red"
  puts "STOP!"
when "green", "blue"
  puts "GO!"
when "yellow"
  puts "CAUTION!"
else
  puts "wrong signal"
end

実行結果 STOP!

while文の break と next

  • break -> ループを抜ける

  • next -> ループを一回スキップ

i = 0
while i < 3
  if i == 1
    next
  end
  puts "#{i}: hello"
  i += 1
end

実行結果

0: hello
2: hello

for文

for i in 0..2 do
  puts i
end

実行結果

0
1
2

0..2 の部分は配列でも可。

for color in ["red", "blue", "piink"] do
  puts color
end

実行結果

red
blue
pink

eachメソッド

["red", "blue", "piink"].each do |color|
  puts color
end

実行結果

red
blue
pink

また、ハッシュに対しても有効。

{"red"=>200, "blue"=>100, "piink"=>50}.each do |color, price|
  puts "#{color}: #{price}"
end

実行結果

red: 200
blue: 100
pink: 50

defについて

def sayHi name = "Steve" # 初期値を持たせることができる
  puts "hello! " + name
end

sayHi "Tom"
sayHi "Bob"
sayHi

実行結果

hello! Tom
hello! Bob
hello! Steve