メソッドの引数をわかりやすくする手法?

matrix.rb見てたら面白い表現があった。

  def Vector.[](*array)
    new(:init_elements, array, copy = false)
  end

他の場所では使ってないから多分間違いなんだと思うけど、これは使えるんじゃないか?


ローカル変数copyに代入した結果(=false)が返るから引数としては問題ない。その上で「この引数はcopyという意味なんだぜ?」と見た目にもわかりやすい。


欠点はそのスコープを汚すことと、変数への代入が入るからほんのちょっとだけ遅くなることか。
前者はこういった特定のメソッドの省略形メソッド定義のみなら数行なので影響範囲はほぼない。後者は言わずもがな。


こういう省略形メソッドを沢山作るようなときには便利かも。