ความอิ่มอกอิ่มใจ - ค่าคงที่
ค่าคงที่ยังเป็นตัวแปรที่กำหนดค่าเริ่มต้นที่ไม่สามารถเปลี่ยนแปลงได้ในชีวิตของโปรแกรม Euphoria อนุญาตให้กำหนดค่าคงที่โดยใช้คำสำคัญคงที่ดังนี้ -
constant MAX = 100
constant Upper = MAX - 10, Lower = 5
constant name_list = {"Fred", "George", "Larry"}
ผลลัพธ์ของนิพจน์ใด ๆ สามารถกำหนดให้เป็นค่าคงที่ได้แม้กระทั่งค่าเดียวที่เกี่ยวข้องกับการเรียกไปยังฟังก์ชันที่กำหนดไว้ก่อนหน้านี้ แต่เมื่อทำการกำหนดค่าของตัวแปรคงที่จะถูก "ล็อก"
ไม่สามารถประกาศค่าคงที่ภายในรูทีนย่อย ขอบเขตของไฟล์constant ที่ไม่มีตัวปรับขอบเขตเริ่มต้นที่การประกาศและสิ้นสุดและจุดสิ้นสุดของไฟล์จะถูกประกาศใน
ตัวอย่าง
#!/home/euphoria-4.0b2/bin/eui
constant MAX = 100
constant Upper = MAX - 10, Lower = 5
printf(1, "Value of MAX %d\n", MAX )
printf(1, "Value of Upper %d\n", Upper )
printf(1, "Value of Lower %d\n", Lower )
MAX = MAX + 1
printf(1, "Value of MAX %d\n", MAX )
สิ่งนี้ก่อให้เกิดข้อผิดพลาดต่อไปนี้ -
./test.ex:10
<0110>:: may not change the value of a constant
MAX = MAX + 1
^
Press Enter
หากคุณลบสองบรรทัดสุดท้ายออกจากตัวอย่างจะให้ผลลัพธ์ดังต่อไปนี้ -
Value of MAX 100
Value of Upper 90
Value of Lower 5
enums
ค่าที่แจกแจงเป็นค่าคงที่ชนิดพิเศษโดยที่ค่าแรกเริ่มต้นเป็นตัวเลข 1 และแต่ละรายการหลังจากนั้นจะเพิ่มขึ้นด้วย 1 Enums สามารถรับค่าตัวเลขได้เท่านั้น
ไม่สามารถประกาศ Enums ภายในรูทีนย่อยได้ ขอบเขตของไฟล์enum ที่ไม่มีตัวปรับขอบเขตเริ่มต้นที่การประกาศและสิ้นสุดและจุดสิ้นสุดของไฟล์จะถูกประกาศใน
ตัวอย่าง
#!/home/euphoria-4.0b2/bin/eui
enum ONE, TWO, THREE, FOUR
printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of FOUR %d\n", FOUR )
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of FOUR 4
คุณสามารถเปลี่ยนค่าของรายการใดรายการหนึ่งโดยกำหนดเป็นค่าตัวเลข ค่าที่ตามมาจะเป็นค่าก่อนหน้าบวกหนึ่งเสมอเว้นแต่จะกำหนดเป็นค่าเริ่มต้นด้วย
#!/home/euphoria-4.0b2/bin/eui
enum ONE, TWO, THREE, ABC=10, XYZ
printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of ABC %d\n", ABC )
printf(1, "Value of XYZ %d\n", XYZ )
สิ่งนี้ให้ผลลัพธ์ดังต่อไปนี้ -
Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of ABC 10
Value of XYZ 11
ลำดับใช้ดัชนีจำนวนเต็ม แต่ด้วย enum คุณอาจเขียนโค้ดเช่นนี้ -
enum X, Y
sequence point = { 0,0 }
point[X] = 3
point[Y] = 4