Latest web development tutorials

ผู้ประกอบการสวิฟท์

ผู้ประกอบการเป็นสัญลักษณ์ที่ใช้ในการบอกคอมไพเลอร์ในการดำเนินการดำเนินการทางคณิตศาสตร์หรือตรรกะ

สวิฟท์ให้ผู้ประกอบการดังต่อไปนี้:

  • ดำเนินการทางคณิตศาสตร์
  • การเปรียบเทียบ
  • ดำเนินการทางตรรกะ
  • ผู้ประกอบการระดับบิต
  • ผู้ประกอบการที่ได้รับมอบหมาย
  • ผู้ประกอบการช่วงเวลา
  • ผู้ประกอบการอื่น ๆ

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


ดำเนินการทางคณิตศาสตร์

ตารางต่อไปนี้แสดงการสนับสนุนภาษาดำเนินการทางคณิตศาสตร์ 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

ณ จุดนี้สามารถมองเห็นได้อย่างง่ายดายว่าผลการคำนวณของสี่