6 điểm bởi xguru 2023-08-23 | 9 bình luận | Chia sẻ qua WhatsApp
  • 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

 
joyfui 2023-08-23

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

 
xguru 2023-08-23

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

 
roxie 2023-08-27

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

 
pribess 2023-08-23

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.

 
xguru 2023-08-23

Ô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!

 
antegral 2023-08-24

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

 
depth221 2023-08-23

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

 
annyeong 2023-08-23

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

 
eususu 2023-08-23

À. Hiểu được câu này thì đúng là xác nhận thuộc thế hệ chú bác rồi :)