มาทำความรู้จักตัวแปรและการประกาศตัวแปรภายใน rust กันก่อนเลย โดยในภาษา rust นั้นจะมีการประกาศตัวแปลอยู่ 2 แบบ คือ let กับ const

Let

เริ่มต้นที่ let

fn main() {
    let x  = 5;
    println!("The value of x is: {x}");
}

let variable

จากนั้นให้ลอง run cargo run ก็จะได้ output เป็น

The value of x is: 5

ทีนี้ลองเพิ่มโค๊ดใหม่ลงไป

fn main() {
    let x  = 5;
    println!("The value of x is: {x}");

    x = 6;
    println!("The value of x is: {x}");
}

let variable edit x

ถ้าลอง run ดูเราจะพบว่ามัน error แบบนี้

error[E0384]: cannot assign twice to immutable variable `x`
 --> src/main.rs:5:5
  |
2 |     let x  = 5;
  |         -
  |         |
  |         first assignment to `x`
  |         help: consider making this binding mutable: `mut x`
...
5 |     x = 6;
  |     ^^^^^ cannot assign twice to immutable variable

error imputable variable

เนื่องจากว่ามันตัวแปรตั้งต้นเป็นแบบ immutable ที่ให้อนุญาติให้แก้ไขค่าของตัวแปลนั้น ถ้าหากเราต้องการให้ตัวแปร x สามารถแก้ไขได้ให้เราเพิ่ม mut ไว้หลังคำสั่ง let ซึ่งมันจะเป็นคำสั่งที่ใช้เพื่อ allow ตัวแปรให้สามารถแก้ไขได้

fn main() {
    let mul x  = 5;
    println!("The value of x is: {x}");

    x = 6;
    println!("The value of x is: {x}");
}

add mut in code

The value of x is: 5
The value of x is: 6

const

คีย์เวิร์ดอีกคำหนึ่งที่เราสามารถใช้ เพื่อให้แน่ใจว่าตัวแปรนั้นจะไม่สามารถแก้ไขได้คือ const ซึ่งเอามาใช้เป็นค่าคงที่ ซึ่งตัวแปรประเภทนี้จะคงอยู่ตราบเท่าที่โปรแกรมของเรายังคงทำงานอยู่ ไม่ตายไปซะก่อน (live as long as the program is alive.)

โดยค่า constant จะต้องเป็นตัวพิมพ์ใหญ่เสมอ (UPPER CASE) และต้องกำหนด data type (เช่น :f64) ให้แก่มันด้วย

fn main() {
  const PI: f64 = 3.14159265;
  println!("The value of PI is: {PI}");
}

const variable

โดยตัว const นั่นไม่สามารถกำหนดค่า mut ให้แก่ตัวมันได้

ในบทความถัดไป เราจะไปทำความรู้จักกับ data types ใน rust กัน