อิ่มอกอิ่มใจ - โอเปอเรเตอร์

Euphoria มีชุดตัวดำเนินการที่หลากหลายเพื่อจัดการกับตัวแปร เราสามารถแบ่งตัวดำเนินการ Euphoria ทั้งหมดออกเป็นกลุ่มต่างๆดังต่อไปนี้ -

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการเชิงสัมพันธ์
  • ตัวดำเนินการทางตรรกะ
  • ผู้ดำเนินการมอบหมาย
  • ตัวดำเนินการอื่น ๆ

ตัวดำเนินการเลขคณิต

ตัวดำเนินการทางคณิตศาสตร์ใช้ในนิพจน์ทางคณิตศาสตร์ในลักษณะเดียวกับที่ใช้ในพีชคณิต ตารางต่อไปนี้แสดงรายการตัวดำเนินการเลขคณิต สมมติตัวแปรจำนวนเต็ม A ถือ 10 และตัวแปร B ถือ 20 แล้ว -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
+ การเพิ่ม - เพิ่มค่าที่ด้านใดด้านหนึ่งของตัวดำเนินการ A + B จะให้ 30
- การลบ - ลบตัวถูกดำเนินการทางขวามือออกจากตัวถูกดำเนินการด้านซ้าย A - B จะให้ -10
* การคูณ - คูณค่าที่ด้านใดด้านหนึ่งของตัวดำเนินการ A * B จะให้ 200
/ หาร - แบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวามือ B / A จะให้ 2
+ Unary plus - ไม่มีผลกระทบต่อค่าตัวแปร + B ให้ 20
- Unary ลบ - สร้างค่าลบของตัวแปรที่กำหนด -B ให้ -20

ตัวดำเนินการเชิงสัมพันธ์

มีตัวดำเนินการเชิงสัมพันธ์ต่อไปนี้ที่สนับสนุนโดยภาษา Euphoria สมมติว่าตัวแปร A ถือ 10 และตัวแปร B ถือ 20 แล้ว -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
= ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง (A = B) ไม่เป็นความจริง
! = ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่หากค่าไม่เท่ากันเงื่อนไขจะกลายเป็นจริง (A! = B) เป็นจริง
> ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง (A> B) ไม่เป็นความจริง
< ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง (A <B) เป็นจริง
> = ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง (A> = B) ไม่เป็นความจริง
<= ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง (A <= B) เป็นจริง

ตัวดำเนินการทางตรรกะ

ตารางต่อไปนี้แสดงรายการตัวดำเนินการทางตรรกะ สมมติว่าตัวแปรบูลีน A ถือ 1 และตัวแปร B ถือ 0 แล้ว -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
และ เรียกว่าตัวดำเนินการ Logical AND หากตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์เงื่อนไขจะกลายเป็นจริง (A และ B) เป็นเท็จ
หรือ เรียกว่า Logical OR Operator หากตัวถูกดำเนินการสองตัวใดตัวหนึ่งไม่ใช่ศูนย์เงื่อนไขจะกลายเป็นจริง (A หรือ B) เป็นจริง
xor เรียกว่า Logical XOR Operator เงื่อนไขเป็นจริงถ้าหนึ่งในนั้นเป็นจริงถ้าตัวถูกดำเนินการทั้งสองเป็นจริงหรือเท็จเงื่อนไขจะกลายเป็นเท็จ (A xor B) เป็นจริง
ไม่ เรียกว่า Logical NOT Operator ซึ่งลบล้างผลลัพธ์ เมื่อใช้ตัวดำเนินการนี้ true จะกลายเป็นเท็จและเท็จกลายเป็นจริง ไม่ (B) เป็นจริง

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

ผู้ดำเนินการมอบหมาย

มีตัวดำเนินการกำหนดดังต่อไปนี้ที่สนับสนุนโดยภาษา Euphoria -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
= ตัวดำเนินการกำหนดง่ายกำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย C = A + B จะกำหนดค่า A + B เป็น C
+ = เพิ่มตัวดำเนินการและกำหนดตัวดำเนินการเพิ่มตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C + = A เทียบเท่ากับ C = C + A
- = ตัวดำเนินการลบและกำหนดมันจะลบตัวถูกดำเนินการด้านขวาออกจากตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C - = A เทียบเท่ากับ C = C - A
* = ตัวดำเนินการคูณและการกำหนดมันจะคูณตัวถูกดำเนินการด้านขวากับตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C * = A เทียบเท่ากับ C = C * A
/ = ตัวดำเนินการหารและกำหนดมันแบ่งตัวถูกดำเนินการทางซ้ายกับตัวถูกดำเนินการด้านขวาและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C / = A เทียบเท่ากับ C = C / A
& = ตัวดำเนินการเชื่อมต่อ C & = {2} เหมือนกับ C = {C} & {2}

Note - สัญลักษณ์เท่ากับ '=' ที่ใช้ในคำสั่งมอบหมายไม่ใช่ตัวดำเนินการ แต่เป็นเพียงส่วนหนึ่งของไวยากรณ์

ตัวดำเนินการเบ็ดเตล็ด

มีตัวดำเนินการอื่น ๆ ไม่กี่ตัวที่รองรับ Euphoria Language

ตัวดำเนินการ '&'

สามารถเชื่อมต่อวัตถุสองชิ้นใด ๆ โดยใช้ตัวดำเนินการ“ &” ผลลัพธ์คือลำดับที่มีความยาวเท่ากับผลรวมของความยาวของวัตถุที่ต่อกัน

ตัวอย่างเช่น -

#!/home/euphoria-4.0b2/bin/eui

sequence a, b, c
a = {1, 2, 3}
b = {4}
c = {1, 2, 3} & {4}

printf(1, "Value of c[1] %d\n", c[1] )
printf(1, "Value of c[2] %d\n", c[2] )
printf(1, "Value of c[3] %d\n", c[3] )
printf(1, "Value of c[4] %d\n", c[4] )

สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -

Value of c[1] 1
Value of c[2] 2
Value of c[3] 3
Value of c[4] 4

ลำดับความสำคัญของ Euphoria Operators

ลำดับความสำคัญของตัวดำเนินการกำหนดการจัดกลุ่มคำศัพท์ในนิพจน์ สิ่งนี้มีผลต่อวิธีการประเมินนิพจน์ ตัวดำเนินการบางอย่างมีลำดับความสำคัญสูงกว่าผู้อื่น ตัวอย่างเช่นตัวดำเนินการคูณมีลำดับความสำคัญสูงกว่าตัวดำเนินการบวก

ตัวอย่างเช่น x = 7 + 3 * 2

ที่นี่ x ถูกกำหนด 13 ไม่ใช่ 20 เนื่องจากตัวดำเนินการ * มีลำดับความสำคัญสูงกว่า +

ดังนั้นก่อนอื่นจึงเริ่มต้นด้วย 3 * 2 แล้วเพิ่มเป็น 7

ตัวดำเนินการที่มีลำดับความสำคัญสูงสุดจะปรากฏที่ด้านบนสุดของตารางโดยตัวดำเนินการที่มีค่าต่ำสุดจะปรากฏที่ด้านล่าง ภายในนิพจน์ตัวดำเนินการที่มีลำดับความสำคัญสูงกว่าจะได้รับการประเมินก่อน

ประเภท ตัวดำเนินการ ความสัมพันธ์
Postfix ฟังก์ชัน / ประเภทการโทร  
ยูนารี + -! ไม่ จากขวาไปซ้าย
หลายหลาก * / จากซ้ายไปขวา
สารเติมแต่ง + - จากซ้ายไปขวา
การเชื่อมต่อ & จากซ้ายไปขวา
เชิงสัมพันธ์ >> = <<= จากซ้ายไปขวา
ความเท่าเทียมกัน =! = จากซ้ายไปขวา
ตรรกะ AND และ จากซ้ายไปขวา
ตรรกะหรือ หรือ จากซ้ายไปขวา
XOR ตรรกะ xor จากซ้ายไปขวา
จุลภาค , จากซ้ายไปขวา