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> | ซ้าย |