ruby2_keywords_hash(hash) -> HashRuby 2.7.1 から[permalink][rdoc][edit]-
hash を複製し、Module#ruby2_keywordsやProc#ruby2_keywordsによる ruby2_keywords フラグを立てたハッシュを返します。
このメソッドはデバッグや調査、引数のデシリアライズのように本当に必要な場合のために用意されていて、普通のプログラムで使うことは想定されていません。
複製を返すため、元の hash にフラグは立ちません。
ruby 2.7.1 で追加されたため、ruby 2.7.0 では定義されていません。
- [PARAM]
hash: - ruby2_keywords フラグを立てる Hash を指定します。
- [EXCEPTION]
TypeError: - hash が Hash でない場合に発生します。
例: フラグを立てたハッシュは配列で渡してもキーワード引数になるh = {k: 1} p Hash.ruby2_keywords_hash?(h) # => false flagged = Hash.ruby2_keywords_hash(h) p Hash.ruby2_keywords_hash?(flagged) # => true # 元のハッシュにはフラグが立たない p Hash.ruby2_keywords_hash?(h) # => falsedef foo(k: 42) k end p foo(*[Hash.ruby2_keywords_hash({k: 1})]) # => 1 foo(*[{k: 1}]) # ~> ArgumentError[SEE_ALSO] Hash.ruby2_keywords_hash?, Module#ruby2_keywords, Proc#ruby2_keywords
- [PARAM]