Menu
CoddyTech

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òng

Tươ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: false

Phươ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: 3

Cuối cùng, empty? kiểm tra xem hash có cặp nào không:

data = {}
puts data.empty?  # In ra: true
challenge icon

Thử thách

Dễ

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

  1. 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)
  2. 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:

  1. In ra từng khóa trong hash (mỗi khóa trên một dòng)
  2. In --- làm dấu phân cách
  3. In ra từng giá trị trong hash (mỗi giá trị trên một dòng)
  4. In --- làm dấu phân cách
  5. In ra số lượng cặp khóa-giá trị trong hash
  6. In --- làm dấu phân cách
  7. In true hoặc false để cho biết hash có rỗng hay không
  8. In --- làm dấu phân cách
  9. In true hoặc false để 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
---
true

Nếu đầu vào là product:Laptop,price:999 và stock, đầu ra sẽ là:

product
price
---
Laptop
999
---
2
---
false
---
false

Nếu đầu vào là status:active và status, đầu ra sẽ là:

status
---
active
---
1
---
false
---
true

Tự 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ông
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