yamashiro0110の日記

yamashiro0110の日記です。おもにIT技術のメモを綴っていきます(^o^)

Rubyさわってみたのでめも


Rubyさわってみて、なんとなく便利だと感じたことを書いてみます(^^;


  • 配列
array = ["hoge", "fuga", 100]
print array
# => ["hoge", "fuga", 100]

文字列と数値を混ぜても問題ない


  • 配列から変数に
array = ["hoge", "fuga", 100]
var1, var2 = array
print var1, ",", var2
# => hoge,fuga

配列を前から順に変数に代入してくれる。 わざわざvar1 = array[0]みたいに書かなくていい。 変数と配列の要素の数をあわせなくてもおk。


  • 式展開
array = ["hoge", "fuga", 100]
var1, var2 = array
print "var1:#{var1}, var2:#{var2}"
# => var1:hoge, var2:fuga

""の中で変数の値を#{変数名}で囲うと、値を展開してくれる。 "var1:" + var1 + ", var2:" + var2みたいに書かなくていい。


  • for文:その1
for i in [1, "foo", "bar"]
  print "i:#{i}", "  "
end
# => i:1  i:foo  i:bar

配列の要素の数だけ繰り返し、要素の値がiに代入される。 for (i = 0; i < list.length; i++)とかしなくていい。


  • for文:その2
for k,v in { key1:"val1", key2:"val2"}
  print "k:#{k},v:#{v}", "  "
end
# => k:key1,v:val1  k:key2,v:val2

キーと値のペアがそれぞれkとvに代入され、カンマ区切りの要素の数だけ繰り返す。 1回ループするごとに要素を取り出して・・・とかしなくていい


  • 手続きオブジェクト
num = lambda { |x,y|
  return x + y
}.(1,2)

print"num:#{num}","\n"
# => num:3

ブロックを実行して、結果を取得。 ブロックのメリットは、いろいろあって難しかった・・・ 個人的には、今のとこ匿名関数のように使えるので名前を気にしなくていいってとこくらい