- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:*(1..5)の意味)
*(1..5)とは?マニュアルで調べる方法と使い方を教えてください。
このQ&Aのポイント
- Rubyのマニュアルでよく見る表記の一つに*(1..5)というものがありますが、その意味や使い方がよくわかりません。
- マニュアルを検索しても該当箇所を見つけることができませんでした。
- どのように扱えばよいのか、マニュアルのどこに記載されているかを教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>この機能についてのご説明とマニュアルの何処に記載されているかをご教示いただけると幸いです。 「メソッド呼び出し(super・ブロック付き・yield)」のあたり。 素直に (1..5).to_a と書いたほうがわかりやすいと思います。
その他の回答 (2)
- koko_u_u
- ベストアンサー率18% (216/1139)
回答No.3
> マニュアルではメソッド呼び出しの部分に書かれていますが、 > メソッド呼び出しでないところで使用されても機能するということで良いのかな? うーん。 配列を生成するリテラル表現 [ ??, ??, ... ] が Array.[] メソッド呼び出しと同じように扱われているんだと思いますけど、あんまり自信ない。
質問者
お礼
マニュアルの説明ですと、いまひとつ良く分かりませんよね。 自分で書いたとしても、後で意味がわからなくなる可能性がありますので メソッド呼び出し部分以外では使用しないでおこうと思います。 ご回答ありがとうございました。
- ryu_chan
- ベストアンサー率37% (69/186)
回答No.2
記号の意味はここ↓を参照されるといいと思います。 Rubyで使われる記号の意味(正規表現の複雑な記号は除く) http://doc.ruby-lang.org/ja/1.9.2/doc/symref.html
質問者
お礼
ご回答ありがとうございました。 No1様へのお礼でメソッド呼び出し以外でも使用できることについて書きましたが、 ご提示いただいたリンク先の、多重代入という機能があることが判りました。 ただ質問で挙げた例では「代入」はされていないようにみえますので、少し疑問が残ります。 内部的な一時変数に代入されるということなのでしょうか。
お礼
ご回答ありがとうございました。 マニュアルの以下の部分ですね。 > 最後の引数の直前に * がついている場合、その引数の値が展開されて渡されます。展開はメソッド to_a を経由して行なわれます。 つまり(1..5).to_aを実行した結果の、要素の並びが返されると理解しました。 マニュアルではメソッド呼び出しの部分に書かれていますが、メソッド呼び出しでないところで使用されても機能するということで良いのかな?