Dịch giùm đoạn tiếng Anh trong sách Ruby
There are some little-known shortcuts for creating new hashes. They all provide a slightly different convenience. The latter two generate a hash directly from pre-existing key-value pairs. The first simply sets a default value for all elements in the hash. Let’s take a look at that first.
normal = Hash.new
was_not_there = normal[:zig]
puts "Wasn't there:"
p was_not_there
usually_brown = Hash.new("brown")
pretending_to_be_there = usually_brown[:zig]
puts "Pretending to be there:"
p pretending_to_be_there
Result:
Wasn’t there:
nil
Pretending to be there:
“brown”
As you can see, where a “normal” hash always returns nil by default, specifying a default in the Hash constructor will always return your custom default for any failed lookups on that hash instance.
Và
The other two shortcuts actually use the Hash class’s convenience method: Hash::[]. They’re fairly straight-forward. The first takes a flat list of parameters, arranged in pairs. The second takes just one parameter: an array containing arrays which are themselves key-value pairs. Whew! That’s a mouthful. Let’s try the first form:
chuck_norris = Hash[:punch, 99, :kick, 98, :stops_bullets_with_hands, true]
p chuck_norris
Result:
{:punch=>99, :kick=>98, :stops_bullets_with_hands=>true}
Tóm lại:
Bạn có thể tạo Hash có giá trị mặc định thông qua truyền một tham số vào hàm khởi tạo của Hash.
Bạn có thể tạo Hash thông qua hàm [] của lớp Hash.
Hàm [] có thể nhận vào một danh sách các giá trị, sắp xếp theo đúng thứ tự key-value hoặc nhận vào mảng của các mảng, mỗi mảng chứa một cặp key-value theo đúng thứ tự.
Whew! That’s a mouthful. Cuối cùng cũng đã hiểu cảm ơn anh