Ruby 3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Hashクラス
クラス・モジュールの継承リスト: Hash
< Enumerable
< Object
< Kernel
< BasicObject
dynamic include:
JSON::Generator::GeneratorMethods::Hash (by json)
ハッシュテーブル(連想配列とも呼ぶ)のクラスです。ハッシュは任意の種類のオブジェクト(キー)から任意の種類のオブジェクト(値)への関連づけを行うことができます。
ハッシュ生成は多くの場合以下のようなリテラル (リテラル/ハッシュ式) で行われます。
{a => b, ... } # aはキー、bは値となる {s: b , ... } # { :s => b, ... } と同じ。キーがシンボルの場合の省略した書き方 {"a+": b , ... } # { :"a+" => b, ... } と同じ。上の表現に空白や記号を含めたい場合
キーには任意の種類のオブジェクトを用いることができますが、以下の2つのメソッドが適切に定義してある必要があります。
破壊的操作によってキーとして与えたオブジェクトの内容が変化し、Object#hash の返す値が変わるとハッシュから値が取り出せなくなりますから、 Array、Hash などのインスタンスはキーに向きません。Hash#rehash を参照。
ただし、 更新不可 (Object#frozen? が true) では無い文字列をキーとして与えた場合は、文字列をコピーし、コピーを更新不可に設定 (Object#freeze) してキーとして使用します。この為、キーとして使われている文字列を更新しようとすると例外 FrozenError が発生するので rehash を呼ぶ必要性は生じません。
ハッシュにはデフォルト値を設定することができます。存在しないキーを探索したときに返す値で、未設定時は nil です。デフォルト値には値形式とブロック形式があります。実際にデフォルト値がどのように扱われるかは各メソッドの説明を参照してください。
ハッシュに含まれる要素の順序が保持されるようになりました。ハッシュにキーが追加された順序で列挙します。
定義 | 説明 | |
---|---|---|
self[other] -> Hash
|
新しいハッシュを生成します。引数otherと同一のキーと値を持つ新たなハッシュを生成して返します。 |
|
self[*key_and_value] -> Hash
|
新しいハッシュを生成します。引数は必ず偶数個指定しなければなりません。奇数番目がキー、偶数番目が値になります。 |
|
new(ifnone = nil) -> Hash
|
空の新しいハッシュを生成します。ifnone はキーに対応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。 |
|
new {|hash, key| ... } -> Hash
|
空の新しいハッシュを生成します。ブロックの評価結果がデフォルト値になります。設定したデフォルト値はHash#default_procで参照できます。 |
|
ruby2_keywords_hash?(hash) -> bool
|
Module#ruby2_keywordsやProc#ruby2_keywordsによる ruby2_keywords フラグが設定されているかどうかを返します。 |
|
try_convert(obj) -> Hash | nil
|
to_hash メソッドを用いて obj をハッシュに変換しようとします。 |
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
all?
any?
chain
chunk
chunk_while
collect
collect_concat
count
cycle
detect
drop
drop_while
each_cons
each_entry
each_slice
each_with_index
each_with_object
entries
filter
filter_map
find_index
first
grep
grep_v
group_by
inject
lazy
max
max_by
min
min_by
minmax
minmax_by
none?
one?
partition
reverse_each
slice_after
slice_before
slice_when
sort
sort_by
sum
take
take_while
tally
to_set
uniq
zip
!~
<=>
=~
_dump
class
define_singleton_method
display
enum_for
extend
freeze
frozen?
initialize
initialize_copy
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
marshal_dump
marshal_load
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
then
to_ary
to_int
to_io
to_regexp
to_str
trust
untaint
untrust
untrusted?
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_ENGINE_VERSION
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE