آرایه‌ها در روبی

تعریف آرایه، دسترسی به عناصر، تغییر مقادیر و ویژگی‌های آرایه در روبی

آرایه چیست؟

آرایه (Array) مجموعه‌ای مرتب و تغییرپذیر از مقادیر است. آرایه می‌تواند هر نوع داده‌ای را در خود نگه دارد — حتی انواع مختلف با هم.

تعریف آرایه

# آرایه خالی
empty = []
empty = Array.new

# آرایه با مقادیر
fruits = ["سیب", "موز", "پرتقال"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "دو", 3.0, true, nil]

# Array.new با اندازه
zeros = Array.new(5, 0)       # => [0, 0, 0, 0, 0]
range_arr = Array.new(3) { |i| i * 2 }  # => [0, 2, 4]

دسترسی به عناصر

ایندکس آرایه از صفر شروع می‌شود:

fruits = ["سیب", "موز", "پرتقال", "انگور", "هلو"]

# ایندکس مثبت
puts fruits[0]    # => سیب (اولین)
puts fruits[2]    # => پرتقال

# ایندکس منفی (از آخر)
puts fruits[-1]   # => هلو (آخرین)
puts fruits[-2]   # => انگور

# متدهای first و last
puts fruits.first  # => سیب
puts fruits.last   # => هلو

برش آرایه (Slicing)

arr = [10, 20, 30, 40, 50]

puts arr[1, 3].inspect   # => [20, 30, 40] (از ۱، به طول ۳)
puts arr[1..3].inspect   # => [20, 30, 40] (از ۱ تا ۳)
puts arr[2..].inspect    # => [30, 40, 50] (از ۲ تا انتها)
puts arr[..2].inspect    # => [10, 20, 30] (از ابتدا تا ۲)

تغییر عناصر

arr = ["آ", "ب", "ج"]
arr[0] = "الف"
puts arr.inspect  # => ["الف", "ب", "ج"]

# تغییر چند عنصر
arr[1, 2] = ["ب", "ج", "د"]
puts arr.inspect  # => ["الف", "ب", "ج", "د"]

طول آرایه

arr = [1, 2, 3, 4, 5]
puts arr.length  # => 5
puts arr.size    # => 5
puts arr.count   # => 5

افزودن و حذف عناصر

متدتوضیح
push / <<افزودن به انتها
popحذف از انتها
unshiftافزودن به ابتدا
shiftحذف از ابتدا
insertدرج در موقعیت مشخص
deleteحذف با مقدار
delete_atحذف با ایندکس
arr = [1, 2, 3]

# افزودن
arr.push(4)       # => [1, 2, 3, 4]
arr << 5          # => [1, 2, 3, 4, 5]
arr.unshift(0)    # => [0, 1, 2, 3, 4, 5]

# حذف
arr.pop           # => 5 (حذف آخر)
arr.shift         # => 0 (حذف اول)
arr.delete(3)     # حذف مقدار 3

puts arr.inspect  # => [1, 2, 4]

بررسی عضویت

arr = [1, 2, 3, 4, 5]
puts arr.include?(3)  # => true
puts arr.include?(10) # => false

پیمایش آرایه

fruits = ["سیب", "موز", "پرتقال"]

# با each
fruits.each do |fruit|
  puts fruit
end

# با each_with_index
fruits.each_with_index do |fruit, i|
  puts "#{i + 1}. #{fruit}"
end

آرایه‌های چندبعدی

matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

puts matrix[0][0]  # => 1
puts matrix[1][2]  # => 6

خلاصه

عملیاتسینتکس
تعریف[1, 2, 3]
دسترسیarr[i]
برشarr[start, len]
طولarr.length
افزودنarr << val
حذفarr.pop
عضویتarr.include?(x)

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط