Tcl - โอเปอเรเตอร์

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

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการเชิงสัมพันธ์
  • ตัวดำเนินการทางตรรกะ
  • ตัวดำเนินการ Bitwise
  • Ternary Operator

บทนี้จะอธิบายเกี่ยวกับตัวดำเนินการทางคณิตศาสตร์เชิงสัมพันธ์ตรรกะบิตและตัวดำเนินการทีละตัว

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

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

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

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

ตัวดำเนินการเชิงสัมพันธ์

ตารางต่อไปนี้แสดงตัวดำเนินการเชิงสัมพันธ์ทั้งหมดที่สนับสนุนโดยภาษา Tcl สมมติตัวแปรA ถือ 10 และตัวแปร B ถือ 20 แล้ว -

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

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

ตัวดำเนินการทางตรรกะ

ตารางต่อไปนี้แสดงตัวดำเนินการทางตรรกะทั้งหมดที่ภาษา Tcl สนับสนุน สมมติตัวแปรA ถือ 1 และตัวแปร B ถือ 0 แล้ว -

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

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

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

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

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

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

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

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

Ternary Operator

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

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
เหรอ? : Ternary ถ้า Condition เป็นจริง? จากนั้นค่า X: หรือค่า Y

ลำดับความสำคัญของผู้ปฏิบัติงานใน Tcl

ลำดับความสำคัญของตัวดำเนินการกำหนดการจัดกลุ่มคำศัพท์ในนิพจน์ สิ่งนี้มีผลต่อวิธีการประเมินนิพจน์ ตัวดำเนินการบางอย่างมีลำดับความสำคัญสูงกว่าผู้อื่น ตัวอย่างเช่นตัวดำเนินการคูณมีลำดับความสำคัญสูงกว่าตัวดำเนินการบวก

For example: x = 7 + 3 * 2; ที่นี่ x ถูกกำหนดให้เป็น 13 ไม่ใช่ 20 เนื่องจากตัวดำเนินการ * มีลำดับความสำคัญสูงกว่า + ดังนั้นจึงได้รับการคูณด้วย 3 * 2 ก่อนแล้วจึงเพิ่มเป็น 7

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

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

ประเภท ตัวดำเนินการ ความสัมพันธ์
ยูนารี + - จากขวาไปซ้าย
หลายหลาก * /% จากซ้ายไปขวา
สารเติมแต่ง + - จากซ้ายไปขวา
กะ << >> จากซ้ายไปขวา
เชิงสัมพันธ์ <<=>> = จากซ้ายไปขวา
Bitwise AND & จากซ้ายไปขวา
Bitwise XOR ^ จากซ้ายไปขวา
Bitwise หรือ | จากซ้ายไปขวา
ตรรกะ AND && จากซ้ายไปขวา
ตรรกะหรือ || จากซ้ายไปขวา
Ternary ?: จากขวาไปซ้าย