Menu
CoddyTech

Tạo từ điển

Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 73 trên 88.

Mảng rất phù hợp để lưu trữ danh sách có thứ tự, nhưng đôi khi bạn cần liên kết các giá trị với những nhãn cụ thể thay vì chỉ số dạng số. Một hash lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị, trong đó mỗi khóa trỏ đến một giá trị tương ứng.

Để tạo một hash, hãy dùng dấu ngoặc nhọn, với khóa và giá trị được phân tách bằng => (gọi là hash rocket):

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person  # Đầu ra: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}

Mỗi khóa phải là duy nhất trong từ điển băm, nhưng các giá trị có thể lặp lại. Khóa và giá trị có thể thuộc bất kỳ kiểu dữ liệu nào, bao gồm chuỗi, số hoặc thậm chí mảng.

Bạn cũng có thể tạo một bảng băm (hash) rỗng rồi thêm các cặp sau đó:

scores = {}

puts scores  # Đầu ra: {}

Hash rất phù hợp để biểu diễn các đối tượng ngoài đời thực có thuộc tính được đặt tên, chẳng hạn như một sản phẩm có tên và giá, hoặc một người dùng có email và mật khẩu. Không giống như mảng, nơi bạn phải nhớ vị trí, hash cho phép bạn dùng những tên có ý nghĩa để sắp xếp dữ liệu.

challenge icon

Thử thách

Dễ

Đọc ba dòng đầu vào:

  1. Tên sách (chuỗi)
  2. Tên tác giả (chuỗi)
  3. Năm xuất bản (số nguyên)

Tạo một hash có tên book với ba cặp khóa-giá trị bằng cú pháp hash rocket (=>):

  • "title" ánh xạ đến tên sách
  • "author" ánh xạ đến tên tác giả
  • "year" ánh xạ đến năm xuất bản (dưới dạng số nguyên)

In hash bằng puts.

Ví dụ, nếu đầu vào là Ruby Basics, Jane Smith và 2023, đầu ra sẽ là:

{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}

Nếu đầu vào là The Great Gatsby, F. Scott Fitzgerald và 1925, đầu ra sẽ là:

{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}

Nếu đầu vào là 1984, George Orwell và 1949, đầu ra sẽ là:

{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}

Tự làm thử

# Đọc đầu vào
title = gets.chomp
author = gets.chomp
year = gets.to_i

# TODO: Tạo một hash tên 'book' gồm ba cặp khóa-giá trị bằng cú pháp hash rocket (=>)
# Các khóa cần là: "title", "author", "year"


# In hash ra
puts book
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Ruby online