[解決済み】double * (splat)演算子は何をするのですか?
2022-04-05 22:28:13
質問
このように宣言された関数を見たことがありますか?
def foo a, **b
...
end
が1つであることは理解しています。
*
はスプラット演算子です。とは
**
の意味は?
どのように解決するのですか?
Ruby 2.0ではキーワード引数が導入されており
**
のように動作します。
*
ただし、キーワード引数の場合。これは、キーと値のペアを持つハッシュを返します。
このコードの場合
def foo(a, *b, **c)
[a, b, c]
end
以下はデモです。
> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]
関連
-
[解決済み] Rubyのダブルコロン `::` とは何ですか?
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] w(array)とはどういう意味ですか?
-
[解決済み] Rubyのmap(&:name)ってどういう意味?
-
[解決済み] Rubyで||= (or-equals)はどういう意味ですか?
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Rubyのメソッドで感嘆符が使われるのはなぜ?
-
[解決済み】Ruby: Gemfileの「require: false」はどういう意味ですか?
-
[解決済み] このRubyのコードでは、(単項)*演算子は何をするのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rubyで数値の配列の合計を出すには?
-
[解決済み】Ruby:kind_of? vs. instance_of? vs. is_a?
-
[解決済み] Ruby 'require' エラー: そのようなファイルをロードできない
-
[解決済み] RMagickのインストール。MagickWand.hが見当たりません。
-
[解決済み] git, Heroku: pre-receive フックの減少
-
[解決済み] ルビー最大整数
-
[解決済み] Rubyのコロン演算子とは何ですか?
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] Rubyの予期しないキーワードの終了、および予期しない入力の終了
-
[解決済み] define_methodに引数を渡すには?