タグ

引数に関するhachiのブックマーク (3)

  • Rubyのパラメータと引数の対応付けを理解する(後編)|TechRacho by BPS株式会社

    上の引数をそのまま使ったメソッド呼び出し例を次に示します。 foo 1, *array, 2, c: 3, "d" => 4, **hash 演算子の優先順位に注意すれば、v、v1、v2にはほぼどんな式でも代入できます。 ところで次をご覧ください。無効な組み合わせももちろんありますが、パラメータと引数の種類の組み合わせの多さはやばいです。 そしてsplatやダブルsplatがパラメータ側だけでなく引数側にもある点にご注意ください(ただし機能は異なります)。このあたりから不安になってきますね。ともあれ、各引数について解説します。 1. 通常の引数 ここで言う通常の引数には、以下を含めるものとします。いずれも引数の個数としては1個になります。 変数としての引数(vなど) 文字列リテラル("hello"など) 配列リテラル([1, 2, 3]など) パラメータ側を必須パラメータ1つに限った場合(

    Rubyのパラメータと引数の対応付けを理解する(後編)|TechRacho by BPS株式会社
  • Rubyのパラメータと引数の対応付けを理解する(前編)|TechRacho by BPS株式会社

    配列分解(array decomposition)とpost-requiredは、元記事著者独自の呼び方のようです。 上のパラメータをすべて使った例は以下のようになります。 def foo a, b = 2, *c, d, e:, f: 7, **g, &blk; end パラメータの説明 注意: 元記事で使われているパラメータの種類は、パラメータを修飾する記号の書式だけでは決まりません。元記事におけるパラメータの種類は、「パラメータを修飾する記号」、「パラメータが置かれる位置(順序)」、「パラメータにどんな引数が渡されるか」を総合したものです。 たとえば「記号が何もついていないから必須パラメータ」とは限らず、パラメータの配置に応じてpost-requiredパラメータと呼んでいます。 3.の配列分解はパラメータの書式ではなくパラメータの動作と理解するのがよいでしょう。 1. 必須 必須パ

    Rubyのパラメータと引数の対応付けを理解する(前編)|TechRacho by BPS株式会社
  • [Ruby] ブロック変数とブロック引数とProc引数の違い|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 前回の『Rubyスタイルガイドを読む: 文法(5)ブロック、proc』を書いていて、ブロック変数/ブロック引数/Proc引数の違いが気になったので調べてみました。 ブロック変数(block variable)とブロック引数(block argument)は字面が似ています。実際、ネット上でブロック変数をブロック引数と呼んでいる記事をいくつかみかけました。 ブロック引数とProc引数(Proc argument)も音が似ているのでやはり少しまぎらわしいところがあります。 結論から言うと、文献によって用語が想像以上に違っており、追った限りでは公式ドキュメントでも定めきれませんでした。用法がこんなに揺れているとは思わなかった... はじめに: 用語について 今回調べていて、引数という言葉の難しさを痛感しました。 引数(argument)という言葉はよく使われ

    [Ruby] ブロック変数とブロック引数とProc引数の違い|TechRacho by BPS株式会社
  • 1