[DOC] Tweaks for Hash doc

This commit is contained in:
BurdetteLamar 2025-03-31 07:50:10 -05:00 committed by Peter Zhu
parent 765918d283
commit 2d9036498e
Notes: git 2025-03-31 18:49:56 +00:00

23
hash.c
View File

@ -6899,27 +6899,28 @@ static const rb_data_type_t env_data_type = {
}; };
/* /*
* A +Hash+ maps each of its unique keys to a specific value. * A \Hash object maps each of its unique keys to a specific value.
* *
* A +Hash+ has certain similarities to an Array, but: * A hash has certain similarities to an Array, but:
* - An Array index is always an Integer.
* - A +Hash+ key can be (almost) any object. * - An array index is always an integer.
* - A hash key can be (almost) any object.
* *
* === +Hash+ \Data Syntax * === \Hash \Data Syntax
* *
* The older syntax for +Hash+ data uses the "hash rocket," <tt>=></tt>: * The original syntax for a hash entry uses the "hash rocket," <tt>=></tt>:
* *
* h = {:foo => 0, :bar => 1, :baz => 2} * h = {:foo => 0, :bar => 1, :baz => 2}
* h # => {foo: 0, bar: 1, baz: 2} * h # => {foo: 0, bar: 1, baz: 2}
* *
* Alternatively, but only for a +Hash+ key that's a Symbol, * Alternatively, but only for a key that's a symbol,
* you can use a newer JSON-style syntax, * you can use a newer JSON-style syntax,
* where each bareword becomes a Symbol: * where each bareword becomes a symbol:
* *
* h = {foo: 0, bar: 1, baz: 2} * h = {foo: 0, bar: 1, baz: 2}
* h # => {foo: 0, bar: 1, baz: 2} * h # => {foo: 0, bar: 1, baz: 2}
* *
* You can also use a String in place of a bareword: * You can also use a string in place of a bareword:
* *
* h = {'foo': 0, 'bar': 1, 'baz': 2} * h = {'foo': 0, 'bar': 1, 'baz': 2}
* h # => {foo: 0, bar: 1, baz: 2} * h # => {foo: 0, bar: 1, baz: 2}
@ -6930,12 +6931,12 @@ static const rb_data_type_t env_data_type = {
* h # => {foo: 0, bar: 1, baz: 2} * h # => {foo: 0, bar: 1, baz: 2}
* *
* But it's an error to try the JSON-style syntax * But it's an error to try the JSON-style syntax
* for a key that's not a bareword or a String: * for a key that's not a bareword or a string:
* *
* # Raises SyntaxError (syntax error, unexpected ':', expecting =>): * # Raises SyntaxError (syntax error, unexpected ':', expecting =>):
* h = {0: 'zero'} * h = {0: 'zero'}
* *
* +Hash+ value can be omitted, meaning that value will be fetched from the context * The value can be omitted, meaning that value will be fetched from the context
* by the name of the key: * by the name of the key:
* *
* x = 0 * x = 0