ความอิ่มอกอิ่มใจ - ค่าคงที่

ค่าคงที่ยังเป็นตัวแปรที่กำหนดค่าเริ่มต้นที่ไม่สามารถเปลี่ยนแปลงได้ในชีวิตของโปรแกรม 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