สนิม - คงที่

ค่าคงที่แสดงถึงค่าที่ไม่สามารถเปลี่ยนแปลงได้ หากคุณประกาศค่าคงที่แล้วจะไม่มีทางที่ค่าของมันจะเปลี่ยนไป คำหลักสำหรับการใช้ค่าคงที่คือconst. ต้องพิมพ์ค่าคงที่อย่างชัดเจน ต่อไปนี้เป็นไวยากรณ์เพื่อประกาศค่าคงที่

const VARIABLE_NAME:dataType = value;

อนุสัญญาการตั้งชื่อคงสนิม

หลักการตั้งชื่อสำหรับค่าคงที่คล้ายกับตัวแปร อักขระทั้งหมดในชื่อคงที่มักจะเป็นตัวพิมพ์ใหญ่ ไม่เหมือนกับการประกาศตัวแปรlet คำหลักไม่ได้ใช้เพื่อประกาศค่าคงที่

เราได้ใช้ค่าคงที่ใน Rust ในตัวอย่างด้านล่าง -

fn main() {
   const USER_LIMIT:i32 = 100;    // Declare a integer constant
   const PI:f32 = 3.14;           //Declare a float constant

   println!("user limit is {}",USER_LIMIT);  //Display value of the constant
   println!("pi value is {}",PI);            //Display value of the constant
}

ตัวแปรคงที่ v / s

ในส่วนนี้เราจะเรียนรู้เกี่ยวกับปัจจัยที่แตกต่างระหว่างค่าคงที่และตัวแปร

  • ค่าคงที่ประกาศโดยใช้ const คำสำคัญในขณะที่มีการประกาศตัวแปรโดยใช้ let คำสำคัญ.

  • การประกาศตัวแปรสามารถเลือกประเภทข้อมูลได้ในขณะที่การประกาศค่าคงที่ต้องระบุชนิดข้อมูล ซึ่งหมายความว่า const USER_LIMIT = 100 จะทำให้เกิดข้อผิดพลาด

  • ตัวแปรที่ประกาศโดยใช้ letคำหลักเป็นค่าเริ่มต้นไม่เปลี่ยนรูป อย่างไรก็ตามคุณมีตัวเลือกในการกลายพันธุ์โดยใช้ไฟล์mutคำสำคัญ. ค่าคงที่ไม่เปลี่ยนรูป

  • ค่าคงที่สามารถกำหนดให้เป็นนิพจน์คงที่เท่านั้นและไม่เป็นผลลัพธ์ของการเรียกใช้ฟังก์ชันหรือค่าอื่นใดที่จะคำนวณในรันไทม์

  • ค่าคงที่สามารถประกาศได้ในขอบเขตใด ๆ รวมถึงขอบเขตส่วนกลางซึ่งทำให้มีประโยชน์สำหรับค่าที่หลายส่วนของโค้ดจำเป็นต้องรู้

เงาของตัวแปรและค่าคงที่

Rust อนุญาตให้โปรแกรมเมอร์ประกาศตัวแปรที่มีชื่อเดียวกัน ในกรณีนี้ตัวแปรใหม่จะแทนที่ตัวแปรก่อนหน้า

ให้เราเข้าใจสิ่งนี้ด้วยตัวอย่าง

fn main() {
   let salary = 100.00;
   let salary = 1.50 ; 
   // reads first salary
   println!("The value of salary is :{}",salary);
}

รหัสด้านบนประกาศตัวแปรสองตัวตามชื่อเงินเดือน การประกาศครั้งแรกได้รับการกำหนด 100.00 ในขณะที่การประกาศครั้งที่สองกำหนดค่า 1.50 เงาตัวแปรที่สองหรือซ่อนตัวแปรแรกขณะแสดงเอาต์พุต

เอาต์พุต

The value of salary is :1.50

Rust รองรับตัวแปรที่มีประเภทข้อมูลต่างกันในขณะที่ทำเงา

ลองพิจารณาตัวอย่างต่อไปนี้

รหัสประกาศสองตัวแปรตามชื่อ uname. การประกาศครั้งแรกถูกกำหนดค่าสตริงในขณะที่การประกาศครั้งที่สองถูกกำหนดให้เป็นจำนวนเต็ม ฟังก์ชัน len จะส่งคืนจำนวนอักขระทั้งหมดในค่าสตริง

fn main() {
   let uname = "Mohtashim";
   let uname = uname.len();
   println!("name changed to integer : {}",uname);
}

เอาต์พุต

name changed to integer: 9

ค่าคงที่ไม่เหมือนตัวแปร หากตัวแปรในโปรแกรมข้างต้นถูกแทนที่ด้วยค่าคงที่คอมไพเลอร์จะแสดงข้อผิดพลาด

fn main() {
   const NAME:&str = "Mohtashim";
   const NAME:usize = NAME.len(); 
   //Error : `NAME` already defined
   println!("name changed to integer : {}",NAME);
}