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 ซึ่งทำให้ภาษานี้มีประสิทธิภาพมาก

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