Array | Rust

Anuchit Prasertsang - Jul 18 '21 - - Dev Community

การประกาศอาร์เรย์

ใน rust สามารถทำได้ดังนี้ การประกาศตัวแปร์ ages เก็บค่าอายุในรูปแบบของอาร์เรย์ขนาด 4 ช่อง

let ages:[i32;4] = [12, 16, 19, 20];
Enter fullscreen mode Exit fullscreen mode

เนื่องจากอาร์เรย์มีขนาดชัดเจน หากเราทำการกำหนดค่าในแต่ละช่องตั้งแต่แระแล้ว
เราสามารถที่จะละtype ไปได้เลย

let ages = [12, 16, 19, 20];
Enter fullscreen mode Exit fullscreen mode

เรายังสามารถกำหนดค่าเริ่มต้นให้กับอาร์เรย์ทุกช่องโดยใช้ [v;n]
หมายความว่า กำหนดค่าในอาร์เรย์ทุกช่องเป็นค่า v และอาร์เรย์มีขนาดเท่ากับ n ตัวอย่างด้านล่างหมายความว่า ค่าในอาร์เรย์ทุกช่องจะเป็น 0 และอาร์เรย์มีขนาดเท่ากับ 4

let ages = [0;4];
Enter fullscreen mode Exit fullscreen mode

จะละ type หรือระบุ type ก็ได้เช่นกัน

let ages:[i32;4] = [0;4];
Enter fullscreen mode Exit fullscreen mode

ขนาดของอาร์เรย์เป็นคุณสมบัติหนึ่งของ type ด้วย
ตัวอย่างเช่น ฟังก์ชั้น show รับอาร์เรย์ขนาด 3 แต่เราส่ง ages ซึ่งเป็นอาร์เรย์ขนาด 4 ไปตอนเรียกฟังก์ชั่น เราจะเจอคอมไพล์ error ถึงแม้อาร์เรย์จะเป็นชนิด i32 เหมือนกัน

fn show(xs: [i32;3]) {
    println!("{:?}", xs); 
}

fn main(){
   let ages = [0;4];
   show(ages);
}
Enter fullscreen mode Exit fullscreen mode

ผลลัพธ์
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]);
}
Enter fullscreen mode Exit fullscreen mode

เปลี่ยนค่าในอาร์เรย์

หากเราอยากให้อาร์เรย์สามารถเปลี่ยนค่าได้ต้องเพ่ิมคำว่า 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]);
}
Enter fullscreen mode Exit fullscreen mode

ขนาดของอาร์เรย์

สามารถหาได้โดยใช้ คำสั่ง len()

fn main(){
   let ages = [0;4];
   println!("length of ages {}", xs.len()); 
}
Enter fullscreen mode Exit fullscreen mode

นั่นก็คือการใช้งานตัวแปรอาร์เรย์ใน rust เบื้องต้นครับ

. . . . . . . . . . . . . . . . . . . . . . .