Array

ตัวอย่างการใช้งาน array

x = []  #=> สร้าง arry ว่างๆ
y = Array.new #=> สร้าง array ว่างๆ อีกอัน
a = ['neo', 'trinity', 'tank'] #=> สร้าง array ขนาดเท่ากับ 3

Array เริ่มต้นที่ 0

a[0] #=> neo
a[1] #=> trinity

ดูขนาดของ Array จากคำสั่ง length และ size (คือคำสั่งเดียวกัน)

puts(a.length) #=> 3
puts(a.size) #=> 3

เราสามารถเพิ่มข้อมูลใน array ได้ตลอด

a[3] = 'morphieus'

ถ้าเติมค่าให้ array เลยตำแหน่งสุดท้าย ค่าของ size จะขยายออกไปทันที

a[6] = 'keymaker'
a.size #=> 7

ได้ค่าของ array a คือ

a = ['neo', 'trinity', 'tank', 'morphieus', nil, nil, 'keymaker']

อีกวิธีในการเพิ่มค่าให้ array คือใช้เครื่องหมาย <<

a << ‘mouse’

ค่า mouse จะไปต่อท้าย a ไม่ว่าตัวแปลสุดท้ายของ a จะเป็น nil ก็ตาม

array ใน ruby มีคำสั่ง sort และ reverse ในตัวเอง

a = [77, 10,120, 3]
a.sort # return => [3, 10, 77, 120]
 
a = [1, 2, 3]
a.reverse # return => [3, 2, 1]

สำคัญว่าคำสั่งทั้งสองไม่ได้ sort หรือ reverse ค่าใน array a เลย ทำแค่ return array ใหม่เท่านั้น ถ้าต้องการให้ a เปลี่ยนค่าไปจริงๆ ต้องเรียก method ชื่อ sort! และ reverse!

a = [77, 10,120, 3]
a.sort! # a => [3, 10, 77, 120]
 
a = [1, 2, 3]
a.reverse! # a => [3, 2, 1]

เครื่องหมาย “!” เป็นที่รู้กันในคนเขียน ruby ว่าหมายถึงการเตือนว่า method นั้นจะเปลี่ยนค่า object นั้นไปด้วย เหมือนเครื่องหมาย “?” ที่หมายถึงการถามเพื่อให้ method นั้นตอบเป็น true/false

(คนเขียน java คงคุ้นกับ “is” เราใช้เหมือน “?” ใน ruby ครับ)