Elixir - โอเปอเรเตอร์
ตัวดำเนินการคือสัญลักษณ์ที่บอกให้คอมไพเลอร์ดำเนินการทางคณิตศาสตร์หรือตรรกะเฉพาะ มีโอเปอเรเตอร์จำนวนมากที่จัดหาโดยยาอายุวัฒนะ แบ่งออกเป็นหมวดหมู่ดังต่อไปนี้ -
- ตัวดำเนินการเลขคณิต
- ตัวดำเนินการเปรียบเทียบ
- ตัวดำเนินการบูลีน
- ตัวดำเนินการอื่น ๆ
ตัวดำเนินการเลขคณิต
ตารางต่อไปนี้แสดงตัวดำเนินการทางคณิตศาสตร์ทั้งหมดที่สนับสนุนโดยภาษา Elixir สมมติตัวแปรA ถือ 10 และตัวแปร B ถือ 20 แล้ว -
แสดงตัวอย่าง
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
+ | เพิ่ม 2 หมายเลข | A + B จะให้ 30 |
- | ลบตัวเลขที่สองจากตัวแรก | AB จะให้ -10 |
* | คูณสองจำนวน | A * B จะให้ 200 |
/ | หารตัวเลขแรกจากวินาที สิ่งนี้จะทำให้ตัวเลขลอยตัวและให้ผลลัพธ์แบบลอยตัว | A / B จะให้ 0.5 |
div | ฟังก์ชันนี้ใช้เพื่อหาผลหาร | div (10,20) จะให้ 0 |
rem | ฟังก์ชันนี้ใช้เพื่อรับส่วนที่เหลือจากการหาร | rem (A, B) จะให้ 10 |
ตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการเปรียบเทียบใน Elixir ส่วนใหญ่มักใช้กับตัวดำเนินการในภาษาอื่น ๆ ตารางต่อไปนี้สรุปตัวดำเนินการเปรียบเทียบใน Elixir สมมติตัวแปรA ถือ 10 และตัวแปร B ถือ 20 แล้ว -
แสดงตัวอย่าง
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
== | ตรวจสอบว่าค่าทางซ้ายเท่ากับค่าทางขวาหรือไม่ (Type casts values ถ้าไม่ใช่ประเภทเดียวกัน) | A == B จะให้เท็จ |
! = | ตรวจสอบว่าค่าทางซ้ายไม่เท่ากับค่าทางขวาหรือไม่ | A! = B จะให้จริง |
=== | ตรวจสอบว่าประเภทของค่าทางซ้ายเท่ากับประเภทของค่าทางด้านขวาหรือไม่ถ้าใช่ให้ตรวจสอบค่าเดียวกัน | A === B จะให้เท็จ |
! == | เหมือนกับข้างบน แต่ตรวจสอบความไม่เท่าเทียมกันแทนที่จะเป็นความเท่าเทียมกัน | A! == B จะให้จริง |
> | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ ถ้าใช่เงื่อนไขจะกลายเป็นจริง | A> B จะให้เท็จ |
< | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ ถ้าใช่เงื่อนไขจะกลายเป็นจริง | A <B จะให้จริง |
> = | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ ถ้าใช่เงื่อนไขจะกลายเป็นจริง | A> = B จะให้เท็จ |
<= | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ ถ้าใช่เงื่อนไขจะกลายเป็นจริง | A <= B จะให้จริง |
ตัวดำเนินการทางตรรกะ
Elixir มีตัวดำเนินการเชิงตรรกะ 6 ตัว: และหรือไม่ใช่ &&, || และ!. สามคนแรกand or notเป็นตัวดำเนินการบูลีนที่เข้มงวดซึ่งหมายความว่าพวกเขาคาดหวังว่าอาร์กิวเมนต์แรกจะเป็นบูลีน อาร์กิวเมนต์ที่ไม่ใช่บูลีนจะทำให้เกิดข้อผิดพลาด ในขณะที่สามคนถัดไป&&, || and !ไม่เข้มงวดไม่ต้องการให้เรามีค่าแรกเป็นบูลีนอย่างเคร่งครัด พวกเขาทำงานในลักษณะเดียวกับคู่หูที่เข้มงวด สมมติตัวแปรA ถือเป็นจริงและตัวแปร B ถือ 20 แล้ว -
แสดงตัวอย่าง
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
และ | ตรวจสอบว่าค่าทั้งสองที่ระบุเป็นจริงหรือไม่ถ้าใช่จะส่งคืนค่าของตัวแปรที่สอง (ตรรกะและ). | A และ B จะให้ 20 |
หรือ | ตรวจสอบว่าค่าที่ระบุเป็นจริงหรือไม่ ส่งคืนค่าใดก็ตามที่เป็นจริง ผลตอบแทนที่เป็นเท็จ (ตรรกะหรือ) | A หรือ B จะให้จริง |
ไม่ | ตัวดำเนินการยูนารีซึ่งเปลี่ยนค่าของอินพุตที่กำหนด | ไม่ใช่ A จะให้เท็จ |
&& | ไม่เข้มงวด and. ทำงานเช่นเดียวกับand แต่ไม่คาดว่าอาร์กิวเมนต์แรกจะเป็นบูลีน | B && A จะให้ 20 |
|| | ไม่เข้มงวด or. ทำงานเช่นเดียวกับor แต่ไม่คาดว่าอาร์กิวเมนต์แรกจะเป็นบูลีน | B || A จะให้จริง |
! | ไม่เข้มงวด not. ทำงานเช่นเดียวกับnot แต่ไม่คาดหวังว่าอาร์กิวเมนต์จะเป็นบูลีน | ! A จะให้เท็จ |
NOTE −และ , หรือ , &&และ|| || เป็นตัวดำเนินการไฟฟ้าลัดวงจร ซึ่งหมายความว่าถ้าอาร์กิวเมนต์แรกของandเป็นเท็จจากนั้นจะไม่ตรวจสอบรายการที่สองอีก และถ้าอาร์กิวเมนต์แรกของorเป็นจริงแล้วจะไม่ตรวจสอบข้อที่สอง ตัวอย่างเช่น,
false and raise("An error")
#This won't raise an error as raise function wont get executed because of short
#circuiting nature of and operator
ตัวดำเนินการ Bitwise
ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการทีละบิต Elixir มีโมดูล bitwise เป็นส่วนหนึ่งของแพ็คเกจBitwiseดังนั้นในการใช้สิ่งเหล่านี้คุณต้องใช้โมดูลบิต ในการใช้งานให้ป้อนคำสั่งต่อไปนี้ในเชลล์ของคุณ -
use Bitwise
สมมติว่า A เป็น 5 และ B เป็น 6 สำหรับตัวอย่างต่อไปนี้ -
แสดงตัวอย่าง
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
&&& | Bitwise และตัวดำเนินการจะคัดลอกบิตเพื่อให้ได้ผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง | A &&& B จะให้ 4 |
||| | Bitwise หรือตัวดำเนินการจะคัดลอกบิตเพื่อให้ได้ผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง | ก ||| B จะให้ 7 |
>>> | ตัวดำเนินการ shift ขวาแบบ Bitwise จะเลื่อนบิตตัวถูกดำเนินการแรกไปทางขวาตามจำนวนที่ระบุในตัวถูกดำเนินการที่สอง | A >>> B จะให้ 0 |
<<< | ตัวดำเนินการ Shift ด้านซ้ายแบบ Bitwise จะเลื่อนบิตตัวถูกดำเนินการแรกไปทางซ้ายตามจำนวนที่ระบุในตัวถูกดำเนินการที่สอง | A <<< B จะให้ 320 |
^^^ | ตัวดำเนินการ Bitwise XOR จะคัดลอกบิตเพื่อให้ได้ผลลัพธ์เฉพาะในกรณีที่ตัวถูกดำเนินการทั้งสองต่างกัน | A ^^^ B จะให้ 3 |
~~~ | Unary bitwise จะไม่กลับด้านบิตของตัวเลขที่กำหนด | ~~~ A จะให้ -6 |
ตัวดำเนินการอื่น ๆ
นอกเหนือจากตัวดำเนินการข้างต้น Elixir ยังมีตัวดำเนินการอื่น ๆ อีกมากมายเช่น Concatenation Operator, Match Operator, Pin Operator, Pipe Operator, String Match Operator, Code Point Operator, Capture Operator, Ternary Operator ซึ่งทำให้ภาษานี้มีประสิทธิภาพมาก
แสดงตัวอย่าง