Dalam artikel ini, anda akan belajar mengenai peraturan yang digunakan untuk menilai ekspresi dengan operator dan operan.
Keutamaan Operator Swift
Priority operator adalah sekumpulan peraturan yang digunakan untuk menilai ungkapan matematik yang diberikan. Apabila terdapat beberapa operator yang digunakan dalam satu ungkapan, setiap bahagian dinilai dalam urutan tertentu yang disebut sebagai operator didahulukan. Pengendali tertentu mempunyai keutamaan yang lebih tinggi daripada yang lain yang mempengaruhi bagaimana ekspresi dinilai.
Jadual keutamaan pengendali
Jadual di bawah menyenaraikan keutamaan pengendali di Swift. Lebih tinggi ia muncul dalam jadual, semakin tinggi keutamaannya.
Kumpulan Keutamaan Perpustakaan Standard Swift (Tertinggi hingga Terendah)Kumpulan Pengendali | Contoh |
---|---|
Keutamaan peralihan bitwise | >> & <>>> |
Keutamaan pendaraban | & *% & * / |
Keutamaan penambahan | | & + & - + - ^ |
Keutamaan Pembentukan Julat | … <… |
Keutamaan Casting | adalah seperti |
Nil-Coalescing Precedence | ?? |
Keutamaan Perbandingan | ! => = <= === == |
Keutamaan Konjungsi Logik | && |
Keutamaan Disjungsi Logik | || |
Keutamaan Lalai | ~> |
Keutamaan Ternary | ?: |
Fungsi keutamaan Panah | () |
Keutamaan Tugasan | | =% = / = & <> = & = * = >> = << = = + = - = |
Contoh 1: Keutamaan Operator Swift
let x = 4 + 5 * 5 print(x)
Apabila anda menjalankan program di atas, outputnya adalah:
29
Dalam contoh di atas, jika anda membaca ungkapan dari kiri ke kanan, anda mungkin menjangkakan outputnya adalah 45. Tetapi, operator pendaraban mempunyai keutamaan yang lebih tinggi daripada operator penambahan sehingga ekspresi 4 + 5 * 5
dinilai sebagai 4 + (5 * 5)
. Oleh itu print(x)
output 29 di skrin.
Langkah-langkah | Pengendali | Ungkapan | Nilai dikembalikan dari ungkapan |
---|---|---|---|
1 | * | 5 * 5 | 25 |
2 | + | 4 + 25 | 29 |
3 | = | cetak (x) | 29 |
Contoh 2: Keutamaan Operator Swift dengan pengendali tugas yang kompleks
var y = 15 y += 10 - 2 * 3 print(y)
Apabila anda menjalankan program di atas, outputnya adalah:
19
Dalam contoh di atas, ungkapan var y = 15
memberikan nilai 15 dalam pemboleh ubah y.
Dalam ungkapan seterusnya y += 10 - 2 * 3
, operator pendaraban mempunyai keutamaan yang lebih tinggi daripada pengendali penugasan & penugasan kompaun ( +=
).
Oleh itu, ungkapan y += 10 - 2 * 3
dinilai sebagai y = y + (10 - (2 * 3))
.
Langkah-langkah | Pengendali | Ungkapan | Nilai dikembalikan dari ungkapan |
1 | = | var y = 15 | 15 |
2 | * | 2 * 3 | 6 |
3 | - | 10 - 6 | 4 |
4 | + = | 15 + 4 | 19 |
Perkaitan Operator Swift
Walaupun ada peraturan yang ditentukan sebelumnya yang didahului oleh operator untuk menilai suatu ungkapan, anda mungkin tertanya-tanya apa yang berlaku sekiranya terdapat beberapa operator yang mempunyai tahap keutamaan yang sama. Keterkaitan operator menentukan bagaimana pengendali yang mempunyai keutamaan yang sama dikumpulkan bersama.
Di Swift, pengendali boleh sama ada kiri-bersekutu, kanan-bersekutu atau tidak mempunyai kaitan. Pengendali yang bersekutu kiri, mengelompokkan operan mereka dari sebelah kiri pernyataan, pengendali bersekutu kanan dari kanan dan operator yang tidak mempunyai kaitan tidak mempunyai tingkah laku yang ditentukan ketika digunakan secara berurutan dalam ungkapan.
Jadual kaitan operator
Jadual di bawah menunjukkan kaitan operator Swift bersama dengan keutamaan.
Persatuan Perpustakaan Standard Swift (Keutamaan Tertinggi hingga Terendah)Kumpulan Pengendali | Contoh | Pergaulan |
---|---|---|
Keutamaan peralihan bitwise | >> & <>>> | tiada |
Keutamaan pendaraban | & *% & * / | ditinggalkan |
Keutamaan penambahan | | & + & - + - ^ | ditinggalkan |
Keutamaan Pembentukan Julat | … <… | tiada |
Keutamaan Casting | adalah seperti | tiada |
Nil-Coalescing Precedence | ?? | betul |
Keutamaan Perbandingan | ! => = <= === == | tiada |
Keutamaan Konjungsi Logik | && | ditinggalkan |
Keutamaan Disjungsi Logik | || | ditinggalkan |
Keutamaan Lalai | ~> | tiada |
Keutamaan Ternary | ?: | betul |
Fungsi keutamaan Panah | () | betul |
Keutamaan Tugasan | | =% = / = & <> = & = * = >> = << = = | betul |
Contoh 3: Perkaitan Operator Swift
let x = 40 / 2 * 10 print(x)
Apabila anda menjalankan program di atas, outputnya adalah:
200
Dalam program di atas, ungkapan dinilai dari kiri ke kanan kerana pengendali tergolong dalam kumpulan pendahuluan pendaraban dan mempunyai kaitan kiri. Oleh itu, operasi pembahagian berlaku lebih awal dan anda mendapat hasilnya 200 . Bagaimana jika anda ingin melakukan pendaraban terlebih dahulu? Anda perlu membungkus 2 * 10
ungkapan menjadi kurung sebagai:
let x = 40 / (2 * 10) print(x)
Apabila anda menjalankan program di atas, outputnya adalah:
2
Anda tidak perlu menghafal jadual keutamaan dan kaitan. Sebahagian besar masa, keutamaan dan kesatuan pengendali masuk akal. Anda selalu boleh menggunakan jadual untuk rujukan jika ragu-ragu. Juga, lebih baik menggunakan kurungan untuk menjadikan kod anda lebih mudah difahami.