Hash của Ruby là cấu trúc dữ liệu tích hợp sẵn dùng để ánh xạ giá trị theo khóa. O(1)
- Nhiều ngôn ngữ khác có nhiều lớp để quản lý key/value, nhưng Ruby quản lý các cặp key/value chỉ với một lớp
Hash duy nhất
- Đây là một cấu trúc dữ liệu rất linh hoạt, có thể dùng cho nhiều mục đích ngoài đối tượng dữ liệu / từ điển / bảng băm / danh sách được sắp xếp
- Có thể dùng gần như mọi đối tượng làm khóa, bao gồm symbol / string / số nguyên
- Có thể đặt giá trị mặc định khi khóa không tồn tại bằng phương thức
fetch
- Có thể xóa khóa bằng
delete. Gọi một khóa không tồn tại cũng không gây vấn đề gì
- Có thể lồng nhau
- Nếu không có khóa tương ứng thì sẽ trả về
nil, nhưng có thể chỉ định giá trị mặc định bằng thuộc tính default
- Vì bao gồm module
Enumerable, có thể lặp qua hash bằng các phương thức như each, each_key, each_pair, each_value, keys, values
- Có thể unpack nội dung trong hash bằng toán tử splat kép
**
- Các phương thức hữu ích khác:
any?(key), compact, empty?, merge, hash.eql? obj, except(*keys), reject, filter & select, fetch_values(*keys), has_key?, member?, include?, key?, has_value?, value?, length, size, count, slice(*keys), transform_values, flatten
9 bình luận
Điều này khiến tôi nhớ lại cảm giác xúc động khi học C ở đại học và lần đầu tiên tiếp xúc với list của Python.
Tôi định dịch
"Swiss Army knife"thành"dao MacGyver", nhưng có vẻ người trẻ bây giờ sẽ không hiểu, nên tôi đổi thành"công cụ đa năng"..Chắc nhắc đến MacGyver thì còn ổn, còn nếu chưa từng nghe đến dao đa năng Thụy Sĩ thì có lẽ sẽ khó hiểu đấy haha
Ngay cả tôi là một thiếu niên cũng hiểu được, có vẻ như hầu như không có ai là không biết điều này.
Ôi, đúng là một phát hiện đáng kinh ngạc. Tôi thật sự nghĩ là mình sẽ không biết điều đó.
Mà nhân tiện, hóa ra trong số người dùng GeekNews cũng có cả các bạn tuổi teen nữa nhỉ.. Thật tuyệt vời!
Có vẻ số lượng lập trình viên tuổi teen cũng đang tăng lên một cách bất ngờ, nên ngày càng có nhiều bạn học sinh lập trình viên tiếp cận GeekNews hơn.
Chỉ mới 9 tháng trước thôi, tôi cũng vẫn còn là một thiếu niên...
Nhiều người có thể không biết từng có một bộ phim truyền hình tên là "MacGyver", nhưng có vẻ ai cũng hiểu từ "dao MacGyver".
Giờ thì chắc đã ở tầm như một câu tục ngữ rồi nên cũng ổn nhỉ? Trước hết, tôi ở độ tuổi 20 nên đã hiểu rồi :D
À. Hiểu được câu này thì đúng là xác nhận thuộc thế hệ chú bác rồi :)