F # - ตัวดำเนินการ

ตัวดำเนินการคือสัญลักษณ์ที่บอกให้คอมไพเลอร์ดำเนินการทางคณิตศาสตร์หรือตรรกะเฉพาะ F # อุดมไปด้วยตัวดำเนินการในตัวและมีตัวดำเนินการประเภทต่อไปนี้ -

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการเปรียบเทียบ
  • ตัวดำเนินการบูลีน
  • ตัวดำเนินการ Bitwise

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

ตารางต่อไปนี้แสดงตัวดำเนินการเลขคณิตทั้งหมดที่ภาษา F # รองรับ สมมติว่าตัวแปร A ถือ 10 และตัวแปร B ถือ 20 แล้ว -

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

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
+ เพิ่มสองตัวถูกดำเนินการ A + B จะให้ 30
- ลบตัวถูกดำเนินการที่สองจากตัวแรก A - B จะให้ -10
* คูณตัวถูกดำเนินการทั้งสอง A * B จะให้ 200
/ หารตัวเศษด้วยตัวเศษ B / A จะให้ 2
% ตัวดำเนินการโมดูลัสและส่วนที่เหลือหลังจากการหารจำนวนเต็ม B% A จะให้ 0
** Exponentiation Operator ยกตัวถูกดำเนินการเป็นพลังของอีกตัวหนึ่ง B ** A จะให้ 20 10

ตัวดำเนินการเปรียบเทียบ

ตารางต่อไปนี้แสดงตัวดำเนินการเปรียบเทียบทั้งหมดที่รองรับภาษา F # ตัวดำเนินการเปรียบเทียบไบนารีเหล่านี้พร้อมใช้งานสำหรับประเภทอินทิกรัลและทศนิยม ตัวดำเนินการเหล่านี้ส่งคืนค่าประเภทบูล

สมมติว่าตัวแปร A ถือ 10 และตัวแปร B ถือ 20 จากนั้น -

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

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

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

ตารางต่อไปนี้แสดงตัวดำเนินการบูลีนทั้งหมดที่ภาษา F # รองรับ สมมติตัวแปร A ถือtrue และตัวแปร B ถือ false, แล้ว -

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

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

ตัวดำเนินการ Bitwise

ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการแบบบิตต่อบิต ตารางความจริงสำหรับ &&& (bitwise AND), ||| (bitwise OR) และ ^^^ (bitwise exclusive OR) มีดังนี้ -

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

q p &&& q p ||| q p ^^^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

สมมติว่า A = 60; และ B = 13; ตอนนี้ในรูปแบบไบนารีพวกเขาจะเป็นดังนี้ -

A = 0011 1100

B = 0000 1101

-----------------

A &&& B = 0000 1100

ก ||| B = 0011 1101

ก ^^^ B = 0011 0001

~~~ ก = 1100 0011

ตัวดำเนินการ Bitwise ที่รองรับโดยภาษา F # แสดงอยู่ในตารางต่อไปนี้ สมมติตัวแปร A ถือ 60 และตัวแปร B ถือ 13 จากนั้น -

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
&&& ไบนารี AND Operator จะคัดลอกบิตไปยังผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง (A &&& B) จะให้ 12 ซึ่งก็คือ 0000 1100
||| ไบนารีหรือตัวดำเนินการจะคัดลอกบิตหากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง (A ||| B) จะให้ 61 ซึ่งก็คือ 0011 1101
^^^ ตัวดำเนินการ XOR ไบนารีจะคัดลอกบิตหากตั้งค่าไว้ในตัวถูกดำเนินการเดียว แต่ไม่ใช่ทั้งสองอย่าง (A ^^^ B) จะให้ 49 ซึ่งก็คือ 0011 0001
~~~ Binary Ones Complement Operator เป็นเอกภาพและมีผลของบิต 'พลิก' (~~~ A) จะให้ -61 ซึ่งก็คือ 1100 0011 ในรูปแบบประกอบของ 2
<<< ตัวดำเนินการกะซ้ายแบบไบนารี ค่าตัวถูกดำเนินการด้านซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการด้านขวา A <<< 2 จะให้ 240 ซึ่งเท่ากับ 1111 0000
>>> ตัวดำเนินการกะไบนารีขวา ค่าตัวถูกดำเนินการด้านซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการด้านขวา A >>> 2 จะให้ 15 ซึ่งก็คือ 0000 1111

ลำดับความสำคัญของตัวดำเนินการ

ตารางต่อไปนี้แสดงลำดับความสำคัญของตัวดำเนินการและคีย์เวิร์ดนิพจน์อื่น ๆ ในภาษา F # จากลำดับความสำคัญต่ำสุดไปยังลำดับความสำคัญสูงสุด

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

ตัวดำเนินการ ความสัมพันธ์
เช่น ขวา
เมื่อไหร่ ขวา
| (ท่อ) ซ้าย
; ขวา
ปล่อย ไม่เชื่อมโยง
ฟังก์ชั่นสนุกจับคู่ลอง ไม่เชื่อมโยง
ถ้า ไม่เชื่อมโยง
ขวา
: = ขวา
, ไม่เชื่อมโยง
หรือ, || ซ้าย
&, && ซ้าย
<op,> op, =, | op, & op ซ้าย
&&&, |||, ^^^, ~~~, <<<, >>> ซ้าย
^ op ขวา
:: ขวา
:?>,:? ไม่เชื่อมโยง
- op, + op, (ไบนารี) ซ้าย
* op, / op,% op ซ้าย
** op ขวา
fx (แอปพลิเคชันฟังก์ชัน) ซ้าย
| (รูปแบบที่ตรงกัน) ขวา
ตัวดำเนินการคำนำหน้า (+ op, -op,%, %%, &, &&,! op, ~ op) ซ้าย
. ซ้าย
f (x) ซ้าย
f <types> ซ้าย