สนิม - คงที่
ค่าคงที่แสดงถึงค่าที่ไม่สามารถเปลี่ยนแปลงได้ หากคุณประกาศค่าคงที่แล้วจะไม่มีทางที่ค่าของมันจะเปลี่ยนไป คำหลักสำหรับการใช้ค่าคงที่คือ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);
}