ผู้ประกอบการสวิฟท์
ผู้ประกอบการเป็นสัญลักษณ์ที่ใช้ในการบอกคอมไพเลอร์ในการดำเนินการดำเนินการทางคณิตศาสตร์หรือตรรกะ
สวิฟท์ให้ผู้ประกอบการดังต่อไปนี้:
- ดำเนินการทางคณิตศาสตร์
- การเปรียบเทียบ
- ดำเนินการทางตรรกะ
- ผู้ประกอบการระดับบิต
- ผู้ประกอบการที่ได้รับมอบหมาย
- ผู้ประกอบการช่วงเวลา
- ผู้ประกอบการอื่น ๆ
บทนี้เราจะอธิบายให้คุณดำเนินการทางคณิตศาสตร์ประกอบการสัมพันธ์ดำเนินการทางตรรกะผู้ประกอบการระดับบิต, ผู้ประกอบการที่ได้รับมอบหมายและผู้ประกอบการอื่น ๆ
ดำเนินการทางคณิตศาสตร์
ตารางต่อไปนี้แสดงการสนับสนุนภาษาดำเนินการทางคณิตศาสตร์ Swift, 10 ซึ่งตัวแปรตัวแปร B 20:
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
+ | บวก | ผลการค้นหาสำหรับ A + B 30 |
- | ลบ | เอ - ผล B -10 |
* * * * | ตีนกา | ผลลัพธ์ * B 200 |
/ | เข้าสู่ระบบของการแบ่ง | ผลการค้นหา 2 / b |
% | เหลือ | B% ผลคือ 0 |
++ | การเพิ่มขึ้น | A ++ ผลการค้นหา 11 |
- | การพร่อง | ผล A-- 9 |
ตัวอย่าง
ต่อไปนี้คือตัวอย่างง่ายๆของการดำเนินการทางคณิตศาสตร์:
import Cocoa var A = 10 var B = 20 print("A + B 结果为:\(A + B)") print("A - B 结果为:\(A - B)") print("A * B 结果为:\(A * B)") print("B / A 结果为:\(B / A)") A++ print("A++ 后 A 的值为 \(A)") B-- print("B-- 后 B 的值为 \(B)")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
A + B 结果为:30 A - B 结果为:-10 A * B 结果为:200 B / A 结果为:2 A++ 后 A 的值为 11 B-- 后 B 的值为 19
การเปรียบเทียบ
ตารางต่อไปนี้แสดงรายการตัวดำเนินการเปรียบเทียบการสนับสนุนภาษาสวิฟท์, ขัดแย้งตัวแปร 10, B 20 ตัวแปร
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
== | เท่ากัน | (A == B) เป็นเท็จ |
! = | ไม่เท่ากับ | (A = B) เป็นความจริง |
> | มากกว่า | (A> B) เป็นเท็จ |
< | ต่ำกว่า | (<b) เป็นจริง |
> = | มากกว่าหรือเท่ากับ | (A> = B) เป็นเท็จ |
<= | น้อยกว่าหรือเท่ากับ | (A <= B) เป็นความจริง |
ตัวอย่าง
ต่อไปนี้คือตัวอย่างง่ายๆของการดำเนินงานเปรียบเทียบ:
import Cocoa var A = 10 var B = 20 print("A == B 结果为:\(A == B)") print("A != B 结果为:\(A != B)") print("A > B 结果为:\(A > B)") print("A < B 结果为:\(A < B)") print("A >= B 结果为:\(A >= B)") print("A <= B 结果为:\(A <= B)")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
A == B 结果为:false A != B 结果为:true A > B 结果为:false A < B 结果为:true A >= B 结果为:false A <= B 结果为:true
ดำเนินการทางตรรกะ
ตารางต่อไปนี้แสดงการสนับสนุนภาษาสวิฟท์ดำเนินการทางตรรกะที่ตัวแปรเป็นความจริงขตัวแปรเป็นเท็จ
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
&& | และลอจิก หากผู้ประกอบการที่เป็นจริงทั้งสองด้านเป็นความจริง | (A && B) เป็นเท็จ |
|| | หรือตรรกะ หากผู้ประกอบการทั้งสองด้านของอย่างน้อยหนึ่งของความจริงคือความจริง | (A || B) เป็นความจริง |
! | ตรรกะไม่ มันตีความค่าบูลีนจริงดังนั้นจะกลายเป็นเท็จเท็จจะกลายเป็นความจริง | ! (A && B) เป็นความจริง |
ต่อไปนี้คือตัวอย่างง่ายๆของการดำเนินการตรรกะ:
import Cocoa var A = true var B = false print("A && B 结果为:\(A && B)") print("A || B 结果为:\(A || B)") print("!A 结果为:\(!A)") print("!B 结果为:\(!B)")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
A && B 结果为:false A || B 结果为:true !A 结果为:false !B 结果为:true
ผู้ประกอบการระดับบิต
ผู้ประกอบการระดับบิตบิตที่ใช้ในการดำเนินการ ~ & | ^ ถูกทำให้ไร้ผลและบิตหรือโดยบิตและบิตการดำเนินการแฮคเกอร์ที่มีตัวอย่างในตารางต่อไปนี้:
P | 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
สำหรับการดำเนินงานบิต:
ผู้ประกอบการ | ลักษณะ | แผนภาพ | ตัวอย่าง |
---|---|---|---|
& | และค่าที่เหมาะสม ด้วยค่าที่เหมาะสมและผู้ประกอบการในการดำเนินงานตัวเลขสองแล้วส่งกลับหมายเลขใหม่บิตของจำนวนนี้แต่ละคนต้องใช้สองใส่ตัวเลขเป็นเพียง 1-1 | (A & B) ผลคือ 12, ไบนารีคือ 0000 1100 | |
| | ค่าที่เหมาะสมหรือ ค่าที่เหมาะสมหรือผู้ประกอบการ | เปรียบเทียบตัวเลขสองแล้วส่งกลับจำนวนใหม่ทุกกำหนดจำนวนนี้เป็นเงื่อนไขเดียวกับคนแรกของทั้งสองใส่ตัวเลขมีความแตกต่างจากศูนย์ (นั่นคือคนใดคนหนึ่งของ 1 หรือ 1) | (A | B) ผลที่ได้คือ 61, ไบนารีคือ 00111101 | |
^ | Bitwise XOR บิตพิเศษหรือผู้ประกอบ ^ เปรียบเทียบตัวเลขสองแล้วส่งกลับจำนวนจำนวนนี้ถูกตั้งค่าแต่ละบิตเงื่อนไขที่ 1 เป็นสองปัจจัยการผลิตที่มีจำนวนแตกต่างกันถ้าเท่ากับศูนย์ | (A ^ B) ส่งผลให้ 49 ไบนารีเพื่อ 00110001 | |
~ | ผู้ประกอบการระดับบิต - สำหรับจำนวนของการดำเนินงานในแต่ละบิตคว่ำ | (~ A) -61 ผลไบนารีคือ 1100 0011 ในรูปแบบที่สมบูรณ์ 2 | |
<< | bitwise ซ้าย ผู้ประกอบการกะซ้าย (<<) จะย้ายไปทางซ้ายทั้งหมดจำนวนบิตของบิตระบุตัวถูกดำเนินการ | แสดงให้เห็นว่ารูปต่อไปนี้ << 1 11111111 (11111111 ซ้าย) ผลการ ตัวเลขสีฟ้าถูกย้ายบิตสีเทาบิตทิ้งกรอกข้อมูลตำแหน่งงานว่างที่มีสีส้ม 0 | << 2 ผลการค้นหาสำหรับ 240 ไบนารี 11110000 |
>> | bitwise ขวา ทุกบิตไปทางขวาและย้ายจำนวนบิตที่ผู้ประกอบการระบุ (<<) ถูกดำเนินการ | แสดงให้เห็นว่ารูปต่อไป >> 1 11111111 (11111111 หนึ่งขวา) ผลการ ตัวเลขสีฟ้าถูกย้ายบิตสีเทาบิตทิ้งกรอกข้อมูลตำแหน่งงานว่างที่มีสีส้ม 0 | >> ผลการค้นหา 2 15 0000 1111 ระบบเลขฐานสอง |
ต่อไปนี้คือตัวอย่างง่ายๆของการดำเนินงานบิต:
import Cocoa var A = 60 // 二进制为 0011 1100 var B = 13 // 二进制为 0000 1101 print("A&B 结果为:\(A&B)") print("A|B 结果为:\(A|B)") print("A^B 结果为:\(A^B)") print("~A 结果为:\(~A)")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
A&B 结果为:12 A|B 结果为:61 A^B 结果为:49 ~A 结果为:-61
ผู้ประกอบการที่ได้รับมอบหมาย
ตารางต่อไปนี้แสดงผู้ประกอบการที่ได้รับมอบหมายพื้นฐานภาษาสวิฟท์:
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
= | ผู้ประกอบการที่ได้รับมอบหมายง่ายระบุตัวถูกดำเนินการที่เหมาะสมได้รับมอบหมายให้ดำเนินซ้าย | C ผล = A + B A + B การดำเนินงานที่ได้รับมอบหมายให้ C |
+ = | เพิ่มหลังจากที่ได้รับมอบหมาย, ซ้ายและขวาด้านข้างของตัวถูกดำเนินการก่อนที่จะเพิ่มได้รับมอบหมายให้ดำเนินซ้าย | C + = สอดคล้องกับ C = C + A |
- = | หลังจากที่ได้รับมอบหมายลบที่ถูกดำเนินการทางซ้ายและขวาทั้งสองด้านของตัวถูกดำเนินการทางด้านซ้ายหลังหักมอบหมายให้ | C = - สอดคล้องกับ C = C - เป็น |
* = | แล้วคูณที่ได้รับมอบหมาย, ซ้ายและขวาด้านข้างของตัวถูกดำเนินการจะถูกคูณก่อนที่จะมอบหมายให้ถูกดำเนินการทางด้านซ้าย | C = * สอดคล้องกับ C = C A * |
/ = | แบ่งแยกออกจากกันหลังจากที่ได้รับมอบหมาย, ซ้ายและขวาด้านข้างของตัวถูกดำเนินการแบ่งหลังจากที่ได้รับมอบหมายจะถูกดำเนินการทางด้านซ้าย | C / = เทียบเท่า C = C / A |
% = | ที่เหลือหลังจากที่ได้รับมอบหมาย, ซ้ายและขวาด้านข้างของตัวถูกดำเนินการส่วนที่เหลือหลังจากที่ได้รับมอบหมายจะถูกดำเนินการทางด้านซ้าย | C =% เทียบเท่ากับ C = C% ใน |
<< = | Bitwise เหลือหลังจากที่ได้รับมอบหมาย | C = 2 << สอดคล้องกับ C = C << 2 |
>> = | Bitwise ขวาหลังจากที่ได้รับมอบหมาย | C = 2 >> เทียบเท่ากับ C = C >> 2 |
และ = | ค่าที่เหมาะสมและการโอนหลังจากการดำเนินการ | C & = 2 เทียบเท่ากับ C = C & 2 |
^ = | Bitwise พิเศษหรือผู้ประกอบการที่ได้รับมอบหมายแล้ว | C ^ = 2 เทียบเท่ากับ C = C ^ 2 |
| = | หรือการกำหนดค่าที่เหมาะสมหลังจากที่ | C | = 2 สอดคล้องกับ C = C | 2 |
ต่อไปนี้คือตัวอย่างง่ายๆของผู้ประกอบการที่ได้รับมอบหมาย:
import Cocoa var A = 10 var B = 20 var C = 100 C = A + B print("C 结果为:\(C)") C += A print("C 结果为:\(C)") C -= A print("C 结果为:\(C)") C *= A print("C 结果为:\(C)") C /= A print("C 结果为:\(C)") //以下测试已注释,可去掉注释测试每个实例 /* C %= A print("C 结果为:\(C)") C <<= A print("C 结果为:\(C)") C >>= A print("C 结果为:\(C)") C &= A print("C 结果为:\(C)") C ^= A print("C 结果为:\(C)") C |= A print("C 结果为:\(C)") */
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
C 结果为:30 C 结果为:40 C 结果为:30 C 结果为:300 C 结果为:30
ผู้ประกอบการช่วงเวลา
สวิฟท์มีสองผู้ประกอบการช่วง
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
ผู้ประกอบการช่วงเวลาปิด | ผู้ประกอบการช่วงปิด (ก ... ข) ช่วงเวลาที่กำหนดไว้มีค่าทั้งหมดจาก A ไป B (รวมทั้ง A และ B), B ต้องมากกว่าหรือเท่ากับ ปิดดำเนินการซ้ำช่วงเวลาในช่วงของค่าทั้งหมดเป็นประโยชน์อย่างมากในขณะที่สำหรับในวง: | 1 ... 5 ช่วงคือ 1, 2, 3, 4 และ 5 |
ครึ่งเปิดดำเนินการช่วงเวลา | ช่วงครึ่งเปิด (ก .. | 1 .. <5 คุ้มค่าช่วงเวลา 1, 2, 3 และ 4 |
ต่อไปนี้คือตัวอย่างง่ายๆของเลขคณิตช่วงเวลา:
import Cocoa print("闭区间运算符:") for index in 1...5 { print("\(index) * 5 = \(index * 5)") } print("半开区间运算符:") for index in 1..<5 { print("\(index) * 5 = \(index * 5)") }
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
闭区间运算符: 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 半开区间运算符: 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20
ผู้ประกอบการอื่น ๆ
สวิฟท์ให้บริการประเภทอื่น ๆ ของผู้ประกอบการเช่นขาวดำ, ดิและผู้ประกอบการที่ประกอบไปด้วย
- ผู้ประกอบการเอกในการจัดการวัตถุปฏิบัติการเดียว (เช่น
-a
) ผู้ประกอบการผู้ประกอบการเอกนาทีก่อนและหลังผู้ประกอบการผู้ประกอบการจำเป็นต้องก่อนการดำเนินการได้ทันทีก่อนที่วัตถุ (เช่น!b
), ผู้ประกอบการหลังการดำเนินการในทันทีหลังจากที่วัตถุ (เช่นi++
) - ผู้ประกอบการไบนารีทำงานทั้งวัตถุปฏิบัติการ (เช่น
2 + 3
) มันเป็นในบ้านตามที่ปรากฏระหว่างสองตัวถูกดำเนินการ - สามผู้ประกอบ ternary ปฏิบัติการเป้าหมายการดำเนินงานและภาษา C, สวิฟท์เป็นเพียงผู้ประกอบการที่ประกอบไปด้วยโดยเป็นผู้ประกอบ ternary (
a ? b : c
)
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
ลบเอก | เพิ่มด้านหน้าดิจิตอล - คำนำหน้า | -3 หรือ -4 |
เอกบวก | เงินดิจิตอลเพิ่ม + คำนำหน้า | 6 ผล 6 |
ประกอบ ternary | ? สภาพ X: Y | ถ้าคุณเพิ่มเป็นจริงค่าของ X, Y เป็นอย่างอื่น |
ต่อไปนี้เป็นหนึ่งดอลลาร์ตัวอย่างง่ายๆของการดำเนินงานไบนารีและประกอบไปด้วย:
import Cocoa var A = 1 var B = 2 var C = true var D = false print("-A 的值为:\(-A)") print("A + B 的值为:\(A + B)") print("三元运算:\(C ? A : B )") print("三元运算:\(D ? A : B )")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
-A 的值为:-1 A + B 的值为:3 三元运算:1 三元运算:2
ลำดับความสำคัญผู้ประกอบการ
ในการแสดงออกอาจจะมีจำนวนมากของผู้ประกอบการที่แตกต่างกันการเชื่อมต่อกับชนิดข้อมูลที่แตกต่างกันของวัตถุข้อมูลเนื่องจากการแสดงออกมีความหลากหลายของการดำเนินงานลำดับที่แตกต่างของการดำเนินงานอาจจะมีผลที่แตกต่างกันแม้กระทั่งข้อผิดพลาดการดำเนินการที่ผิดพลาดเพราะเมื่อ เมื่อมีการแสดงออกที่มีความหลากหลายของการดำเนินงานตามคำสั่งบางอย่างจะต้องรวมในการสั่งซื้อเพื่อให้แน่ใจว่าเหตุผลและความถูกต้องของผลการค้นหาเอกลักษณ์ของการดำเนินงาน
ลำดับความสำคัญในลำดับถัดลงมาจากด้านบนลงล่างด้านบนมีความสำคัญสูงสุดของผู้ประกอบการจุลภาคมีความสำคัญต่ำสุด
ระดับความสำคัญเดียวกันตามคำสั่งที่มีผลผูกพันของการคำนวณ การดำเนินงานส่วนใหญ่จะถูกคำนวณจากซ้ายไปขวาเพียงสามลำดับความสำคัญจากขวาไปซ้ายรวมกันพวกเขาเป็นผู้ประกอบการเอกภาคผู้ประกอบการตามเงื่อนไขที่ผู้ประกอบการที่ได้รับมอบหมาย
จัดลำดับความสำคัญขั้นพื้นฐานต้องจำไว้:
- ชี้ที่ดีที่สุดเอกกว่าผู้ประกอบการไบนารี ในฐานะที่เป็นเครื่องหมาย
- การคูณและการหารครั้งแรก (โมดูลัส) หลังหัก
- การดำเนินการทางคณิตศาสตร์เปลี่ยนครั้งแรกหลังจากที่คอมพิวเตอร์บิตสุดท้าย กรุณาให้ความสนใจเป็นพิเศษกับ: << 1 2 และ 3 + 7 เทียบเท่ากับ (1 << (3 + 2)) และ 7
- การดำเนินการตรรกะการคำนวณรอบชิงชนะเลิศ
ประเภทผู้ประกอบการ | ผู้ประกอบการ | ผูกทิศทาง |
---|---|---|
การประเมินผลการแสดงออก | () []. Expr ++ expr-- | จากซ้ายไปขวา |
ผู้ประกอบการเอก | * + และ -! ~ ++ Expr --expr * /% + - >> << <> <=> = ==! = | ขวาไปซ้าย |
ผู้ประกอบการระดับบิต | & ^ | && || | จากซ้ายไปขวา |
ประกอบ ternary | ?: | ขวาไปซ้าย |
ผู้ประกอบการที่ได้รับมอบหมาย | + = = - = * = / =% = = >> << = & = ^ = | = | ขวาไปซ้าย |
จุลภาค | , | จากซ้ายไปขวา |
ต่อไปนี้คือตัวอย่างง่ายๆของผู้ประกอบการมีความสำคัญ:
import Cocoa var A = 0 A = 2 + 3 * 4 % 5 print("A 的值为:\(A)")
ดังกล่าวข้างต้นผลการทำงานของโปรแกรม:
A 的值为:4
ตัวอย่างการวิเคราะห์:
ตามที่ผู้ประกอบการมีความสำคัญคุณสามารถโปรแกรมการทำงานของขั้นตอนข้างต้นแก้ไขนิพจน์ต่อไปนี้จะเทียบเท่ากับ:
2 + ((3 * 4) % 5)
ขั้นตอนแรกในการคำนวณ: (3 * 4) = 12 ดังนั้นการแสดงออกเทียบเท่ากับ:
2 + (12 % 5)
ขั้นตอนที่สองในการคำนวณ 12% 5 = 2 ดังนั้นการแสดงออกเทียบเท่ากับ:
2 + 2
ณ จุดนี้สามารถมองเห็นได้อย่างง่ายดายว่าผลการคำนวณของสี่