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.
Thử thách
DễĐọc ba dòng đầu vào:
- Tên sách (chuỗi)
- Tên tác giả (chuỗi)
- 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 bookBà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
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online