30/09/2018, 18:49

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.

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}

Itachi Citus viết 20:53 ngày 30/09/2018

Có một vài cách tạo hash ít được biết đến. Mỗi cách đều mang lại một chút tiện lợi riêng. Hai cách [phía] sau tạo một hash trực tiếp từ các cặp khóa - giá trị có sẵn. Cách đầu đơn giản gán giá trị mặc định cho tất cả các phần tử trong hash (nghĩa là có 3 cách). Hãy xem thử cách đầu tiên:
code

Như bạn có thể thấy, hash thông thường mặc định trả về nil; thay đổi giá trị mặc định thông qua Hash constructor sẽ làm hash luôn trả về giá trị mặc định do bạn đặt khi tìm kiếm trên hash thất bại.

Hai cách còn lại sử dụng các phương thức của lớp Hash: Hash::[]. Cách thứ nhất nhận vào một danh sách các tham số, sắp xếp theo cặp. Cách thứ hai nhận vào một mảng các mảng mà bản thân mỗi mảng là một cặp khóa-giá trị.
Phù, mệt quá
code


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ự.

Hứa Việt Nam viết 21:02 ngày 30/09/2018

Whew! That’s a mouthful. Cuối cùng cũng đã hiểu cảm ơn anh

Bài liên quan
0