การประกาศอาร์เรย์
ใน rust สามารถทำได้ดังนี้ การประกาศตัวแปร์ ages เก็บค่าอายุในรูปแบบของอาร์เรย์ขนาด 4 ช่อง
let ages:[i32;4] = [12, 16, 19, 20];
เนื่องจากอาร์เรย์มีขนาดชัดเจน หากเราทำการกำหนดค่าในแต่ละช่องตั้งแต่แระแล้ว
เราสามารถที่จะละtype ไปได้เลย
let ages = [12, 16, 19, 20];
เรายังสามารถกำหนดค่าเริ่มต้นให้กับอาร์เรย์ทุกช่องโดยใช้ [v;n]
หมายความว่า กำหนดค่าในอาร์เรย์ทุกช่องเป็นค่า v
และอาร์เรย์มีขนาดเท่ากับ n
ตัวอย่างด้านล่างหมายความว่า ค่าในอาร์เรย์ทุกช่องจะเป็น 0
และอาร์เรย์มีขนาดเท่ากับ 4
let ages = [0;4];
จะละ type หรือระบุ type ก็ได้เช่นกัน
let ages:[i32;4] = [0;4];
ขนาดของอาร์เรย์เป็นคุณสมบัติหนึ่งของ type ด้วย
ตัวอย่างเช่น ฟังก์ชั้น show รับอาร์เรย์ขนาด 3 แต่เราส่ง ages ซึ่งเป็นอาร์เรย์ขนาด 4 ไปตอนเรียกฟังก์ชั่น เราจะเจอคอมไพล์ error ถึงแม้อาร์เรย์จะเป็นชนิด i32
เหมือนกัน
fn show(xs: [i32;3]) {
println!("{:?}", xs);
}
fn main(){
let ages = [0;4];
show(ages);
}
ผลลัพธ์
show(ages);
^^ expected an array with a fixed size of 3 elements, found one with 4 elements
อ่านค่าจากอาร์เรย์
เราสามารถอ่านค่าจากอาร์เรย์ได้โดย [index]
โดย index เริ่มต้นที่ 0
เช่น ถ้าอยากอ่านค่าตำแหน่งแรกของอาร์เรย์ ทำได้โดย ages[0]
ถ้าอยากอ่านค่าตำแหน่งที่สามของอาร์เรย์ ทำได้โดย ages[2]
เพราะ index เริ่มนับที่ 0
ตำแหน่งที่สาม index ก็เลยเป็น 2
fn main(){
let ages = [12, 16, 19, 20];
println!("first element: {}", ages[0]);
}
เปลี่ยนค่าในอาร์เรย์
หากเราอยากให้อาร์เรย์สามารถเปลี่ยนค่าได้ต้องเพ่ิมคำว่า mut
(mutable) เข้าไปตอนประกาศอาร์เรย์เพื่อระบุให้ชัดเจนว่านี่คือตัวแปรอาร์เรย์ที่สามารถเปลี่ยนค่าได้
fn main(){
let mut ages = [12, 16, 19, 20];
println!("first element: {}", ages[0]);
ages[0] = 55; //เปลี่ยนค่าตำแหน่งแรกจาก 12 ให้เป็น 55
println!("first element: {}", ages[0]);
}
ขนาดของอาร์เรย์
สามารถหาได้โดยใช้ คำสั่ง len()
fn main(){
let ages = [0;4];
println!("length of ages {}", xs.len());
}
นั่นก็คือการใช้งานตัวแปรอาร์เรย์ใน rust เบื้องต้นครับ