ようへいの日々精進XP

よかろうもん

2018 年 03 月 01 日(木)

ジョギング

  • 出張の為, 朝から動いておりお休み

日課

  • こちらも休み

出張

  • GitHub Enterprise ユーザー会と称するイベントでおしゃべりさせて頂く為に上京
  • 自分の発表は...相変わらずおしゃべり苦手でカミカミ
  • GitHub Enterprise という, 隠れユーザーが多そうなツールのユーザー会ということで, 色々な会社さんの苦労話とか聞けて面白かった
  • メールでしかやりとりしたことが無かった営業さんがいい意味ではっちゃけていて好感を持った

夕飯

  • ユーザー会の懇親会で色々とお話させて頂いた後, オフィスに戻って残務整理
  • 夕飯に新橋裏通りの立ち食い寿司屋でマグロの漬け等をつまむ

今日のるびぃ ~ 可変長変数の展開 ~

ふと頭がごちゃっとしたので, 試してみた.

def foo(*args)
  p *args
end
p '1.-------------'
foo([1, 2, 3])


def foo(*args)
  p args
end

p '2.-------------'
foo([1, 2, 3])


def foo(*args)
  p args[0]
end

p '3.-------------'
foo([1, 2, 3])


def foo(*args)
  p *args
end

p '4.-------------'
foo(1, 2, 3)

def foo(*args)
  p args
end

p '5.-------------'
foo(1, 2, 3)

実行すると以下のように出力された.

$ ruby aaaargs.rb
"1.-------------"
[1, 2, 3]
"2.-------------"
[[1, 2, 3]]
"3.-------------"
[1, 2, 3]
"4.-------------"
1
2
3
"5.-------------"
[1, 2, 3]

ほお. *args に配列を渡した場合, args[0] に配列が代入される. 普通に複数の引数を渡した場合, 配列で展開したい場合には * を外して変数を展開するとよさげ.