Tìm hiểu Hash trong Ruby

Tram Ho

Trong ruby ,Hash là gì ?

Hash là 1 cấu trúc dữ liệu được sử dụng để lưu trữ dữ liệu dưới dạng các cặp key – value.

Ví dụ :

Danh sách tên quốc gia và mã tương ứng .
Một hash với 3 cặp key/value như sau :

{ a : 1, b: 2, c: 3 }

Trong đó, a là key và 1 tương ứng là giá trị của key.Và các cặp key-value được ngăn cách bởi dấu phẩy.

Lưu giá trị trong Ruby hash

Đây là ví dụ khác:

fruits = { coconut: 1, apple: 2, banana: 3 }

Cách giá trị mới vào hash :

fruits[:orange] = 4

Tương tự, :orange là hash key, và 4 là value

Chú ý : Có 1 dấu : trước từ :orange khi truy cập value và 1 dấu : phía sau orange: khi tạo hash.Vì đây là một cú pháp đẹp hơn để tạo hash và không cần hash-rocket(=>) như cách cũ.

Values có thể là bất kì đối tượng trong Ruby như : strings, array, intergers………..

Keys thường gặp là symbols( như :banana) hoặc strings.

Nhớ rằng keys là duy nhất,chúng ta chỉ có một :orange key, hoặc chỉ một :apple key .Nếu thêm cùng 1 key 2 lần thì sẽ thay value của nó.

Cách truy cập values một Hash

Chúng ta truy cập hash dùng key.

Ví dụ :

Nếu key không tồn tại,bạn sẽ nhận được nil.

Ví dụ :

  • Dùng method fetch sẽ cho phép cung cấp giá trị mặc định

Cách merge hai Ruby hash

Chúng ta merge(hợp) hai hash thành 1 hash mới dùng merge method.

Đây là cách làm điều đó :

Lưu ý rằng vì các khóa là duy nhất, các giá trị mới hơn sẽ ghi đè các giá trị cũ hơn.

Một key có nhiều giá trị

Trong từ điển…

Các từ là duy nhất, nhưng chúng có thể có nhiều giá trị (định nghĩa).

Bạn có thể làm điều này trong Ruby!

Trong đó, dictionary[:creativity] cho bạn một mảng & [1] cho bạn phần tử thứ 2 từ mảng đó.

Nói cách khác, key là một symbol và là giá trị là mảng. Khi bạn truy cập hash, bạn sẽ nhận lại một mảng mà bạn truy cập bình thường, giống như bất kỳ mảng nào khác.

Cách sắp xếp một hash

-Khi sắp xếp Hash,nó sẽ sắp xếp theo key.
Ví dụ:

-Nhưng cũng có thể sắp xếp theo value

{ c: 3, b: 1, a: 2 }.sort_by(&:last)

Khi sắp xếp 1 hash chúng ta không nhận lại 1 hash khác.Mà sẽ nhận được 1 mảng.Nhưng chúng ta có thể chuyển mảng trở lại thành Hash dùng to_h method

Lấy tất cả keys và velues từ một Hash

Cách lấy tất cả keys của 1 hash

Ví dụ :

Cách lấy tất cả values của 1 Hash

Muốn kiểm tra 1 key có tồn tại trong Hash dùng key? Method

Lời kết:

Qua bài viết,mình đã giới thiệu với các bạn về Hash,một cấu trúc dữ liệu phổ biến trong Ruby.

Cảm ơn mọi người đã đọc !

Tài liệu tham khảo :
https://www.rubyguides.com/2020/05/ruby-hash-methods/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo