آرایه‌ها در جولیا

تعریف آرایه، ایندکس از ۱، برش (slicing)، push!/pop! و آرایه‌های چندبعدی

آرایه چیست؟

آرایه (Array) کالکشن مرتب و تغییرپذیر است — پرکاربردترین ساختار داده جولیا:

# آرایه‌های یک‌بعدی (vector)
nums = [1, 2, 3, 4, 5]
fruits = ["سیب", "موز", "پرتقال"]
mixed = [1, "دو", 3.0, true]   # انواع مخلوط!

ایندکس از ۱!

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

println(arr[1])      # 10 (اولین!)
println(arr[end])    # 50 (آخرین)
println(arr[end-1])  # 40
ایندکس جولیا از ۱ شروع می‌شود (مثل ریاضی و Lua) — نه ۰ مثل پایتون!

برش (Slicing)

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

println(arr[1:3])     # [10, 20, 30]
println(arr[2:end])   # [20, 30, 40, 50]
println(arr[end-1:end])   # [40, 50]

# با گام
println(arr[1:2:end])   # [10, 30, 50]

تغییر عناصر

arr = [1, 2, 3]
arr[1] = 100
println(arr)   # [100, 2, 3]

# تغییر یک برش!
arr[1:2] = [7, 8]
println(arr)   # [7, 8, 3]

افزودن و حذف — با !

arr = [1, 2, 3]

# افزودن به انتها
push!(arr, 4)
println(arr)   # [1, 2, 3, 4]

# حذف از انتها
pop!(arr)
println(arr)   # [1, 2, 3]

# افزودن به ابتدا
pushfirst!(arr, 0)
println(arr)   # [0, 1, 2, 3]

# حذف از ابتدا
popfirst!(arr)
println(arr)   # [1, 2, 3]

# حذف از موقعیت دلخواه
deleteat!(arr, 2)
println(arr)   # [1, 3]

# درج در موقعیت
insert!(arr, 2, 99)
println(arr)   # [1, 99, 3]

ساخت آرایه‌های خاص

# اعداد متوالی
println(collect(1:5))        # [1, 2, 3, 4, 5]

# پر از مقدار
zeros = zeros(3)             # [0.0, 0.0, 0.0]
               # [1.0, 1.0, 1.0, 1.0]
filled = fill("سلام", 3)     # ["سلام", "سلام", "سلام"]

# تکرار
println(repeat([1, 2], 3))   # [1, 2, 1, 2, 1, 2]

آرایه‌های چندبعدی — ماتریس!

# ماتریس ۲×۳ (سطر به سطر!)
M = [1 2 3; 4 5 6]

println(M)
-- 1  2  3
-- 4  5  6

# دسترسی
println(M[1, 2])   # 2 (سطر ۱، ستون ۲)
println(M[2, 3])   # 6

# ابعاد
println(size(M))   # (2, 3)
جولیا برای جبر خطی ساخته شده — ماتریس‌ها شهروند درجه‌یک هستند و همه عملیات (ضرب، ترانهاده، معکوس) داخلی‌اند!

عملیات روی آرایه

arr = [4, 8, 15, 16, 23, 42]

println(length(arr))    # 6
println(sum(arr))       # 108
println(maximum(arr))   # 42
println(minimum(arr))   # 4
println(sort(arr))      # مرتب‌شده
println(reverse(arr))   # برعکس

# جستجو
println(42 in arr)          # true
println(findfirst(x -> x > 20, arr))   # 5 (ایندکس اولین >۲۰)

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

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