Phương thức của 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 76 trên 88.
Ruby cung cấp một số phương thức tích hợp sẵn giúp bạn kiểm tra và thao tác với từ điển hiệu quả hơn. Các phương thức này giúp bạn nhanh chóng xem thông tin về nội dung của từ điển.
Phương thức keys trả về một mảng gồm tất cả các khóa trong hash:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # In ra name, age và city, mỗi mục trên một dòngTương tự, phương thức values trả về một mảng gồm tất cả các giá trị:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # In ra Alice, 25 và Paris, mỗi giá trị trên một dòng riêngĐể kiểm tra xem một khóa cụ thể có tồn tại hay không, hãy dùng key? hoặc bí danh của nó là has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Đầu ra: true
puts person.key?("country") # Đầu ra: falsePhương thức length cho bạn biết hash chứa bao nhiêu cặp khóa-giá trị:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Đầu ra: 3Cuối cùng, empty? kiểm tra xem hash có cặp nào không:
data = {}
puts data.empty? # In ra: trueThử thách
DễĐọc hai dòng đầu vào:
- Một hash gồm các cặp khóa-giá trị được phân tách bằng dấu phẩy theo định dạng
key:value(ví dụ:name:Alice,age:25,city:Paris) - Một khóa cần kiểm tra xem có tồn tại hay không (chuỗi)
Phân tích đầu vào thứ nhất để tạo một hash, sau đó dùng các phương thức hash bạn đã học để in ra những thông tin sau, mỗi thông tin trên một dòng:
- In ra từng khóa trong hash (mỗi khóa trên một dòng)
- In
---làm dấu phân cách - In ra từng giá trị trong hash (mỗi giá trị trên một dòng)
- In
---làm dấu phân cách - In ra số lượng cặp khóa-giá trị trong hash
- In
---làm dấu phân cách - In
truehoặcfalseđể cho biết hash có rỗng hay không - In
---làm dấu phân cách - In
truehoặcfalseđể cho biết khóa từ đầu vào thứ hai có tồn tại trong hash hay không
Ví dụ, nếu đầu vào là name:Alice,age:25,city:Paris và age, đầu ra sẽ là:
name
age
city
---
Alice
25
Paris
---
3
---
false
---
trueNếu đầu vào là product:Laptop,price:999 và stock, đầu ra sẽ là:
product
price
---
Laptop
999
---
2
---
false
---
falseNếu đầu vào là status:active và status, đầu ra sẽ là:
status
---
active
---
1
---
false
---
trueTự làm thử
# Đọc đầu vào
input_string = gets.chomp
key_to_check = gets.chomp
# Phân tích chuỗi đầu vào để tạo hash
hash = {}
input_string.split(',').each do |pair|
key, value = pair.split(':')
hash[key] = value
end
# TODO: Viết code bên dưới
# Dùng các phương thức (method) của hash để:
# 1. In ra từng khóa (mỗi dòng một khóa)
# 2. In ra "---" làm dấu phân cách
# 3. In ra từng giá trị (mỗi dòng một giá trị)
# 4. In ra "---" làm dấu phân cách
# 5. In ra số cặp khóa-giá trị
# 6. In ra "---" làm dấu phân cách
# 7. In ra true/false nếu hash rỗng
# 8. In ra "---" làm dấu phân cách
# 9. In ra true/false tùy theo key_to_check có tồn tại trong hash hay khôngBà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 động11Mảng
Tạo mảngTruy cập phần tử trong mảngThay đổi mảngPhương thức của mảngÔn tập: Mảng tíchÔn tập: Mảng đảo ngượcMẹo dùng mảng14Từ điển
Tạo từ điểnTruy cập phần tử trong từ điểnChỉnh sửa từ điểnPhương thức của từ điểnÔn tập: từ điển sản phẩmDùng symbol làm khóa trong từ điển3Toá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