อิ่มอกอิ่มใจ - โอเปอเรเตอร์
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 | จากซ้ายไปขวา |
จุลภาค | , | จากซ้ายไปขวา |