Menu
CoddyTech

Mẹo dùng mảng

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 64 trên 88.

Ruby cung cấp các cách viết tắt tiện lợi để tạo mảng, đặc biệt khi làm việc với chuỗi hoặc các số liên tiếp. Những cách viết tắt này giúp tiết kiệm thời gian và làm cho code của bạn gọn gàng hơn.

Cú pháp %w tạo một mảng chuỗi mà không cần dấu ngoặc kép hoặc dấu phẩy:

fruits = %w[apple banana cherry]
puts fruits  # Đầu ra: apple, banana, cherry

Cách này tương đương với việc viết ["apple", "banana", "cherry"] nhưng ngắn gọn hơn nhiều. Mỗi từ được ngăn cách bằng dấu cách sẽ trở thành một phần tử riêng biệt.

Với các mảng ký hiệu, hãy dùng %i:

statuses = %i[pending active completed]
puts statuses  # In ra: pending, active, completed

Để tạo mảng gồm các số liên tiếp, bạn có thể chuyển một phạm vi thành mảng bằng to_a:

numbers = (1..5).to_a
puts numbers  # Đầu ra: 1, 2, 3, 4, 5

Bạn cũng có thể dùng toán tử splat * bên trong dấu ngoặc vuông của mảng:

countdown = [*5..10]
puts countdown  # Đầu ra: 5, 6, 7, 8, 9, 10

Các cách viết tắt này đặc biệt hữu ích khi bạn cần nhanh chóng định nghĩa một danh sách các giá trị đã biết mà không bị rối mắt bởi dấu ngoặc kép và dấu phẩy.

challenge icon

Thử thách

Dễ

Đọc hai đầu vào:

  1. Một dòng gồm các từ được phân tách bằng dấu cách (ví dụ: red green blue yellow)
  2. Hai số nguyên được phân tách bằng dấu phẩy, biểu thị một khoảng (ví dụ: 3,7)

Thực hiện các việc sau:

  1. Tạo một mảng (array) chuỗi (string) từ đầu vào thứ nhất bằng cú pháp viết tắt %w. Vì đầu vào vốn đã là một chuỗi, trước tiên bạn cần dùng split để chuyển nó thành mảng, sau đó minh họa %w bằng cách tạo một mảng riêng gồm các từ alpha, beta, gamma.
  2. Tạo một mảng ký hiệu bằng %i với các giá trị start, middle, end.
  3. Tạo một mảng gồm các số liên tiếp từ khoảng được cung cấp trong đầu vào thứ hai, dùng toán tử splat (splat operator) bên trong dấu ngoặc vuông của mảng.

In các mục sau trên các dòng riêng:

  1. Mỗi phần tử của mảng từ đầu vào
  2. Một dòng trống
  3. Mỗi phần tử của mảng %w (alpha, beta, gamma)
  4. Một dòng trống
  5. Mỗi phần tử của mảng ký hiệu %i
  6. Một dòng trống
  7. Mỗi phần tử của mảng khoảng số

Ví dụ, nếu đầu vào là red green blue và 1,5, đầu ra sẽ là:

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

Nếu đầu vào là sun moon star và 10,13, đầu ra sẽ là:

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

Tự làm thử

# Đọc các từ được phân tách bằng dấu cách
words_input = gets.chomp

# Đọc khoảng giá trị (hai số nguyên được phân tách bằng dấu phẩy)
range_input = gets.chomp

# TODO: Viết code bên dưới
# 1. Tạo mảng từ words_input bằng split
# 2. Tạo mảng %w gồm alpha, beta, gamma
# 3. Tạo mảng %i gồm start, middle, end
# 4. Phân tích khoảng giá trị và tạo mảng bằng toán tử splat (*)

# In mỗi phần tử của từng mảng trên một dòng riêng, để dòng trống giữa các mả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