Khóa học ruby

Array trong Ruby

0 phút đọc

Array là một trong những kiểu dữ liệu quan trọng nhất trong Ruby, cho phép bạn lưu trữ và thao tác với nhiều giá trị trong một đối tượng duy nhất. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về Array trong Ruby, bao gồm cách tạo, truy cập, thao tác và sử dụng chúng một cách hiệu quả.

Tạo Array trong Ruby

Trong Ruby, bạn có thể tạo một Array bằng nhiều cách khác nhau:

  1. Sử dụng cặp ngoặc vuông []:
arr = [1, 2, 3, 4, 5]
  1. Sử dụng phương thức Array.new:
arr = Array.new    # Tạo một Array rỗng
arr = Array.new(3) # Tạo một Array với 3 phần tử `nil`
arr = Array.new(3, "hello") # Tạo một Array với 3 phần tử "hello"
  1. Sử dụng phương thức %w (chỉ dành cho Array chứa các chuỗi):
arr = %w(apple banana orange)

Truy cập phần tử Array trong Ruby

Bạn có thể truy cập các phần tử trong Array bằng cách sử dụng chỉ số (index), bắt đầu từ 0:

arr = [1, 2, 3, 4, 5]
puts arr[0]  # Output: 1
puts arr[2]  # Output: 3
puts arr[-1] # Output: 5 (Chỉ số âm bắt đầu từ cuối Array)

Array Built-in Methods trong Ruby

Ruby cung cấp nhiều phương thức built-in để thao tác với Array, bao gồm:

  • length, size: Trả về số lượng phần tử trong Array.
  • push, <<: Thêm một hoặc nhiều phần tử vào cuối Array.
  • pop: Xóa và trả về phần tử cuối cùng của Array.
  • shift: Xóa và trả về phần tử đầu tiên của Array.
  • unshift: Thêm một hoặc nhiều phần tử vào đầu Array.
  • join: Nối tất cả các phần tử trong Array thành một chuỗi.
  • reverse: Đảo ngược thứ tự các phần tử trong Array.
  • sort: Sắp xếp các phần tử trong Array theo thứ tự tăng dần.

Ví dụ:

arr = [1, 2, 3, 4, 5]
puts arr.length        # Output: 5
arr.push(6)             # arr is now [1, 2, 3, 4, 5, 6]
last_element = arr.pop  # last_element is 6, arr is now [1, 2, 3, 4, 5]
arr.unshift(0)          # arr is now [0, 1, 2, 3, 4, 5]
puts arr.join(", ")     # Output: 0, 1, 2, 3, 4, 5

Array pack Directives trong Ruby

Ruby cung cấp phương thức packunpack để chuyển đổi giữa các chuỗi nhị phân và các mảng. Phương thức pack sử dụng các chỉ thị đóng gói (pack directives) để xác định cách chuyển đổi các phần tử trong mảng thành chuỗi nhị phân.

arr = [1, 2, 3, 4, 5]
binary_string = arr.pack("c*")  # Chuyển đổi mảng thành chuỗi nhị phân

Ngược lại, phương thức unpack sử dụng các chỉ thị giải đóng gói (unpack directives) để chuyển đổi chuỗi nhị phân thành mảng.

binary_string = "abc\x01\x02\x03"
arr = binary_string.unpack("a3C*")  # Chuyển đổi chuỗi nhị phân thành mảng
puts arr.inspect  # Output: ["abc", 1, 2, 3]

Các phương thức khác trong Ruby

Ngoài ra, Ruby còn cung cấp nhiều phương thức khác để thao tác với Array, bao gồm:

  • each: Lặp qua từng phần tử trong Array.
  • map: Tạo ra một Array mới bằng cách áp dụng một khối lệnh cho từng phần tử trong Array.
  • select, filter: Tạo ra một Array mới chứa các phần tử thỏa mãn một điều kiện nhất định.
  • reduce, inject: Áp dụng một phép toán lên tất cả các phần tử trong Array để thu về một giá trị duy nhất.
  • any?, all?: Kiểm tra xem có ít nhất một phần tử hoặc tất cả các phần tử trong Array thỏa mãn một điều kiện nhất định hay không.

Ví dụ:

arr = [1, 2, 3, 4, 5]
arr.each { |x| puts x * 2 }  # Output: 2, 4, 6, 8, 10

doubled_arr = arr.map { |x| x * 2 }  # doubled_arr is [2, 4, 6, 8, 10]

even_arr = arr.select { |x| x.even? }  # even_arr is [2, 4]

sum = arr.reduce(0) { |sum, x| sum + x }  # sum is 15

arr.any? { |x| x > 3 }  # Returns true
arr.all? { |x| x > 3 }  # Returns false

Kết luận

Array là một kiểu dữ liệu cực kỳ quan trọng và hữu ích trong Ruby, cung cấp nhiều phương thức và tính năng mạnh mẽ để thao tác với dữ liệu. Bằng cách sử dụng Array một cách hiệu quả, bạn có thể viết mã Ruby dễ đọc, dễ bảo trì và hiệu quả hơn. Hãy tiếp tục khám phá và thực hành với Array trong Ruby để trở thành một lập trình viên giỏi hơn.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Explain what is an Array Explain what is an Array?

entry

Mô tả một số đặc điểm của cấu trúc dữ liệu mảng (Array)?

entry

Array là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely