Pengendali pantas


Swift Operator

Operator ialah simbol yang memberitahu pengkompil untuk melaksanakan operasi matematik atau logik.

Swift menyediakan pengendali berikut:

  • Pengendali aritmetik

  • Pengendali perbandingan

  • Pengendali logik

  • Pengendali bitwise

  • Pengendali tugasan

  • Pengendali selang

    < . .
  • Pengendali aritmetik

  • Jadual berikut menyenaraikan pengendali aritmetik yang disokong oleh bahasa Swift, dengan pembolehubah A ialah 10 dan pembolehubah B ialah 20:

Contoh

Berikut ialah contoh mudah operasi aritmetik:

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)")

Hasil pelaksanaan program di atas ialah:

A + B 结果为:30
A - B 结果为:-10
A * B 结果为:200
B / A 结果为:2
A++ 后 A 的值为 11
B-- 后 B 的值为 19
运算符描述实例
+加号A + B 结果为 30
减号A − B 结果为 -10
*乘号A * B 结果为 200
/除号B / A 结果为 2
%求余B % A 结果为 0
++自增A++ 结果为 11
--自减A-- 结果为 9

Operator perbandingan

Jadual berikut Operator perbandingan yang disokong oleh bahasa Swift disenaraikan, di mana pembolehubah A ialah 10 dan pembolehubah B ialah 20:

Contoh

Berikut ialah contoh perbandingan ringkas operasi:

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)")

Hasil pelaksanaan program di atas ialah:

A == B 结果为:false
A != B 结果为:true
A > B 结果为:false
A < B 结果为:true
A >= B 结果为:false
A <= B 结果为:true
运算符描述实例
==等于(A == B) 为 false。
!=不等于(A != B) 为 true。
>大于(A > B) 为 false。
<小于(A < B) 为 true。
>=大于等于(A >= B) 为 false。
<=小于等于(A <= B) 为 true。

Pengendali logik

Jadual berikut menyenaraikan operator logik yang disokong oleh bahasa Swift, di mana pembolehubah A adalah benar dan pembolehubah B adalah palsu:

Berikut ialah contoh mudah operasi logik:

import Cocoa

var A = true
var B = false

print("A && B 结果为:\(A && B)")
print("A || B 结果为:\(A || B)")
print("!A 结果为:\(!A)")
print("!B 结果为:\(!B)")

Hasil pelaksanaan program di atas ialah:

A && B 结果为:false
A || B 结果为:true
!A 结果为:false
!B 结果为:true

Pengendali bitwise

Pengendali bitwise ialah digunakan untuk melakukan operasi binari Operasi bitwise, ~,&,|,^ masing-masing adalah penolakan, bitwise AND, bitwise AND, bitwise AND dan operasi XOR, seperti yang ditunjukkan dalam jadual berikut:

pqp & qp | qp ^ q
00000
01011
11110
10011

Jika anda menentukan A = 60; dan B = 13;, perduaan yang sepadan dengan dua pembolehubah ialah:

A = 0011 1100

B = 0000 1101

Lakukan operasi bit:

operator PeneranganIlustrasiContoh
&Bitwise AND. Operator bitwise AND beroperasi pada dua nombor dan mengembalikan nombor baharu Setiap bit nombor ini adalah 1 hanya jika bit yang sama bagi kedua-dua nombor input ialah 1. s1.png(A & B) Hasilnya ialah 12, binari ialah 0000 1100
|Bitwise ATAU . Operator bitwise OR |. Membandingkan dua nombor, dan kemudian mengembalikan nombor baharu Syarat untuk menetapkan setiap bit nombor ini kepada 1 ialah bit yang sama daripada dua nombor input bukan 0 (iaitu, sama ada satu adalah 1, atau kedua-duanya. ialah 1 1). s2.png(A | B) Hasilnya ialah 61, binari ialah 0011 1101
^eksklusif bitwise Atau. Operator XOR bitwise ^ membandingkan dua nombor, dan kemudian mengembalikan nombor Syarat untuk setiap bit nombor ini untuk ditetapkan kepada 1 ialah bit yang sama daripada dua nombor input adalah berbeza ditetapkan kepada 0. s3.png(A ^ B) Hasilnya ialah 49, binari ialah 0011 0001
~bitwise The operator penolakan ~ menafikan setiap bit operan. s4.png(~A ) Hasilnya ialah -61, binari ialah 1100 0011 dalam bentuk pelengkap 2.
<< Anjakan kiri bitwise. Operator anjakan kiri (<<) mengalihkan semua bit operan ke kiri dengan bilangan bit yang ditentukan.

Rajah berikut menunjukkan keputusan 11111111 << 1 (11111111 beralih satu bit ke kiri). Nombor biru mewakili bit yang dialihkan, kelabu mewakili bit yang dibuang dan bit kosong diisi dengan oren 0s.

s5.png
A << 2 keputusan dalam 240, binari ialah 1111 0000
>>bitwise Move betul. Operator anjakan kanan (<<) menggerakkan semua bit operan mengikut bilangan bit yang ditentukan.

Rajah berikut menunjukkan keputusan 11111111 >> 1 (11111111 beralih satu kedudukan ke kanan). Nombor biru mewakili bit yang dialihkan, kelabu mewakili bit yang dibuang dan bit kosong diisi dengan oren 0s.

s6.png
A >> 2 Hasilnya ialah 15, iaitu 0000 dalam binari 1111

Berikut ialah contoh mudah operasi bit :

Hasil pelaksanaan program di atas ialah:

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)")


Operasi tugasan

Jadual berikut menyenaraikan operasi tugasan asas bahasa Swift:

OperatorPeneranganContoh
运算符描述实例
=简单的赋值运算,指定右边操作数赋值给左边的操作数。C = A + B 将 A + B 的运算结果赋值给 C
+=相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数。C += A 相当于 C = C + A
-=相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数。C -= A 相当于 C = C - A
*=相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数。C *= A 相当于 C = C * A
/=相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数。C /= A 相当于 C = C / A
%=求余后再赋值,将左右两边的操作数求余后再赋值给左边的操作数。C %= A is equivalent to C = C % A
<<=按位左移后再赋值C <<= 2 相当于 C = C << 2
>>=按位右移后再赋值C >>= 2 相当于 C = C >> 2
&=按位与运算后赋值C &= 2 相当于 C = C & 2
^=按位异或运算符后再赋值C ^= 2 相当于 C = C ^ 2
|=按位或运算后再赋值C |= 2 相当于 C = C | 2
=

Operan tugasan mudah, menetapkan operan kanan ke operan kiri.

C = A + B Berikan hasil operasi A + B kepada C

+=

dan tambahkannya ke kiri dan kanan operan ditambah dan kemudian diberikan kepada operan di sebelah kiri.
运算符描述实例
闭区间运算符闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于等于a。 ‌ 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在for-in循环中:1...5 区间值为 1, 2, 3, 4 和 5
半开区间运算符半开区间(a..<b)定义一个从a到b但不包括b的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。1..< 5 区间值为 1, 2, 3, 和 4
<🎜>C += A bersamaan dengan C = C + A<🎜><🎜><🎜>-=<🎜><🎜> sebelum menolak dan menetapkan, operan kiri dan kanan ditambah bersama-sama Selepas penolakan, tetapkan nilai kepada operan di sebelah kiri. <🎜><🎜>C -= A bersamaan dengan C = C - A<🎜><🎜><🎜>*=<🎜><🎜>Darab dan kemudian tetapkan, tambah operan kiri dan kanan Selepas mendarab, tetapkan nilai kepada operan di sebelah kiri. <🎜><🎜>C *= A bersamaan dengan C = C * A<🎜><🎜><🎜>/=<🎜><🎜>Bahagi dan kemudian berikan, bandingkan operan kiri dan kanan Selepas pembahagian, tetapkan nilai kepada operan di sebelah kiri. <🎜><🎜>C /= A bersamaan dengan C = C / A<🎜><🎜><🎜>%=<🎜><🎜>Selepas mencari baki dan kemudian memberikan nilai, kirakan operan kiri dan kanan Bakinya kemudiannya diberikan kepada operan di sebelah kiri. <🎜><🎜>C %= A bersamaan dengan C = C % A<🎜><🎜><🎜><<=<🎜><🎜>Anjak ke kiri bitwise dan kemudian tetapkan nilai<🎜 ><🎜>C <<= 2 bersamaan dengan C = C << 2<🎜><🎜><🎜>>>=<🎜><🎜> selepas beralih ke kanan Tugasan< 🎜><🎜>C >>= 2 bersamaan dengan C = C >> 2<🎜><🎜><🎜>&=<🎜><🎜>Tugasan selepas operasi bitwise DAN <🎜 ><🎜>C &= 2 adalah bersamaan dengan C = C & 2<🎜><🎜><🎜>^=<🎜><🎜>pengendali XOR bitwise dan kemudian tugasan<🎜>< 🎜>C ^ = 2 bersamaan dengan C = C ^ 2<🎜><🎜><🎜>|=<🎜><🎜>operasi ATAU bitwise dan kemudian tugasan<🎜><🎜>C |= 2 Bersamaan dengan C = C |. 2<🎜><🎜><🎜><🎜><🎜>Berikut ialah contoh mudah operasi tugasan: <🎜>
A&B 结果为:12
A|B 结果为:61
A^B 结果为:49
~A 结果为:-61
<🎜>Hasil pelaksanaan program di atas ialah: <🎜>
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)")
*/
<🎜 > <🎜>Operator Selang<🎜><🎜>Swift menyediakan dua pengendali selang. <🎜><🎜><🎜>Pengendali selang tertutup<🎜><🎜>Pengendali selang tertutup (a...b) mentakrifkan julat dari a hingga b (termasuk a dan b) Untuk semua nilai selang, b mestilah lebih besar daripada atau sama dengan a. ‌ Operator julat tertutup sangat berguna apabila melelaran ke atas semua nilai dalam julat, seperti dalam gelung untuk masuk: <🎜><🎜>1...5 Nilai julat ialah 1, 2, 3 , 4 dan 5< 🎜><🎜><🎜>Pengendali selang separuh terbuka<🎜><🎜>Selang separuh terbuka (a..<b) mentakrifkan selang dari a hingga b tetapi tidak termasuk b . Ia dipanggil selang separuh terbuka kerana selang termasuk nilai pertama tetapi bukan nilai terakhir. <🎜><🎜>1..< 5 nilai selang adalah 1, 2, 3 dan 4<🎜><🎜><🎜><🎜>

Berikut ialah contoh mudah operasi selang:

C 结果为:30
C 结果为:40
C 结果为:30
C 结果为:300
C 结果为:30

Hasil pelaksanaan program di atas ialah:

import Cocoa

print("闭区间运算符:")
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)")
}

print("半开区间运算符:")
for index in 1..<5 {
    print("\(index) * 5 = \(index * 5)")
}

Pengendali lain

Swift menyediakan jenis pengendali lain , Seperti pengendali unari, binari dan ternari.

  • Pengendali unary beroperasi pada satu operan (seperti -a). Operator unary dibahagikan kepada pra-pengendali dan pasca-pengendali mesti berada sejurus sebelum objek operasi (seperti !b), dan pasca-pengendali mestilah sejurus selepas objek operasi (seperti i++).

  • Pengendali binari beroperasi pada dua operan (seperti 2 + 3) dan berpusat kerana ia muncul di antara dua operan.

  • Pengendali ternary mengendalikan tiga operan Seperti bahasa C, Swift hanya mempunyai satu operator ternary, iaitu operator ternary (a ? b : c).

OperatorPenerangan Contoh
运算符描述实例
一元减数字前添加 - 号前缀-3 或 -4
一元加数字钱添加 + 号前缀+6 结果为 6
三元运算符条件 ? X : Y如果添加为 true ,值为 X ,否则为 Y

Berikut ialah contoh mudah operasi unari, binari dan ternari:

闭区间运算符:
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

Hasil pelaksanaan program di atas ialah:

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 )")

Keutamaan operator

Ungkapan mungkin mengandungi berbilang objek data jenis data berbeza yang disambungkan oleh pengendali yang berbeza memandangkan ungkapan tersebut mempunyai berbilang operasi, perintah operasi yang berbeza mungkin menghasilkan hasil yang berbeza atau ralat operasi yang salah, kerana Apabila ungkapan mengandungi berbilang operasi, ia mesti digabungkan dalam; susunan tertentu untuk memastikan kerasionalan operasi dan ketepatan dan keunikan keputusan.

Keutamaan berkurangan dari atas ke bawah, dengan yang teratas mempunyai keutamaan tertinggi dan pengendali koma mempunyai keutamaan paling rendah.

Dalam keutamaan yang sama, pengiraan adalah berdasarkan susunan gabungan. Kebanyakan operasi dikira dari kiri ke kanan, dan hanya tiga tahap keutamaan digabungkan dari kanan ke kiri Ia adalah operator unary, operator bersyarat dan pengendali tugasan.

Keutamaan asas perlu diingat:

  • Penunjuk adalah optimum, dan operasi bermata adalah lebih baik daripada operasi binokular. Seperti tanda tambah dan tolak.

  • Mula-mula darab dan bahagi (modulo), kemudian tambah dan tolak.

  • Operasi aritmetik dahulu, kemudian operasi anjakan, dan akhirnya operasi bit. Sila beri perhatian khusus kepada: 1 << 3 + 2 & 7 adalah bersamaan dengan (1 << (3 + 2))&7

  • Pengiraan terakhir bagi logik operasi

th>< td >Koma
Jenis pengendaliOperatorMenggabungkan arah
Kendalian ungkapan() [] /tr>< tr>Pengendali unary
运算符类型运算符结合方向
表达式运算() [] . expr++ expr--左到右
一元运算符

* & + - ! ~ ++expr --expr

* / %

+ -

>> <<

< > <= >=

== !=

右到左
位运算符

&

^

|

&&

||

左到右
三元运算符?:右到左
赋值运算符= += -= *= /= %= >>= <<= &= ^= |=右到左
逗号,左到右
* & + - !

><<

<= >=

== !=

Kanan ke kiri
Pengendali bitwise

&

^

|


&&

||

Kiri ke kanan
Pengendali Ternary?:Kanan ke kiri
Pengendali tugasan = += -= *= /= %= >>= <<= &= ^= |=Kanan ke kiri
,Kiri ke kanan

Berikut ialah contoh mudah keutamaan pengendali:

-A 的值为:-1
A + B 的值为:3
三元运算:1
三元运算:2
Hasil pelaksanaan program di atas ialah: <🎜>
import Cocoa

var A = 0

A = 2 + 3 * 4 % 5
print("A 的值为:\(A)")
<🎜><🎜>Contoh analisis: <🎜><🎜><🎜>Mengikut keutamaan pengendali, operasi program di atas boleh dianalisis ke dalam langkah-langkah berikut , ungkapan itu bersamaan dengan: <🎜>
A 的值为:4
<🎜> Langkah pertama ialah pengiraan: (3 * 4) = 12, jadi ungkapan itu bersamaan dengan: <🎜><🎜><🎜><🎜>
2 + ((3 * 4) % 5)
<🎜>Langkah kedua ialah mengira 12 % 5 = 2, jadi ungkapan itu bersamaan dengan: <🎜>
2 + (12 % 5)
<🎜>Pada ketika ini dapat dilihat dengan mudah bahawa hasil yang dikira ialah 4. <🎜><🎜>