about_Operator_Precedence
Deskripsi singkat
Mencantumkan operator PowerShell dalam urutan prioritas.
Deskripsi panjang
Operator PowerShell memungkinkan Anda membangun ekspresi yang sederhana, tetapi kuat. Topik ini mencantumkan operator dalam urutan prioritas. Urutan prioritas adalah urutan di mana PowerShell mengevaluasi operator saat beberapa operator muncul dalam ekspresi yang sama.
Ketika operator memiliki prioritas yang sama, PowerShell mengevaluasinya dari kiri ke kanan saat muncul dalam ekspresi. Pengecualiannya adalah operator penugasan, operator cast, dan operator negasi (!
, -not
, -bnot
), yang dievaluasi dari kanan ke kiri.
Anda dapat menggunakan penutup, seperti tanda kurung, untuk mengambil alih urutan prioritas standar dan memaksa PowerShell untuk mengevaluasi bagian ekspresi yang diapit sebelum bagian yang tidak dirahasiakan.
Dalam daftar berikut, operator tercantum dalam urutan dievaluasi. Operator pada baris yang sama, atau dalam grup yang sama, memiliki prioritas yang sama.
Kolom Operator mencantumkan operator. Kolom Referensi mencantumkan topik Bantuan PowerShell tempat operator dijelaskan. Untuk menampilkan topik, ketik get-help <topic-name>
.
OPERATOR | REFERENSI |
---|---|
$() @() () @{} |
about_Operators |
. ?. (akses anggota) |
about_Operators |
:: (statis) |
about_Operators |
[0] ?[0] (operator indeks) |
about_Operators |
[int] (operator cast) |
about_Operators |
-split (unary) |
about_Split |
-join (unary) |
about_Join |
, (operator koma) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (operator rentang) |
about_Operators |
-f (operator format) |
about_Operators |
- (unary/negative) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Grup operator berikut memiliki prioritas yang sama. Varian peka huruf besar/kecil dan tidak peka huruf besar/kecil secara eksplisit memiliki prioritas yang sama.
OPERATOR | REFERENSI |
---|---|
-split (biner) |
about_Split |
-join (biner) |
about_Join |
-is -isnot -as |
about_Type_Operators |
-eq -ne -gt -ge -lt -le |
about_Comparison_Operators |
-like -notlike |
about_Comparison_Operators |
-match -notmatch |
about_Comparison_Operators |
-in -notIn |
about_Comparison_Operators |
-contains -notContains |
about_Comparison_Operators |
-replace |
about_Comparison_Operators |
Daftar dilanjutkan di sini dengan operator berikut dalam urutan prioritas:
OPERATOR | REFERENSI |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
Item berikut ini bukan operator benar. Mereka adalah bagian dari sintaks perintah PowerShell, bukan sintaks ekspresi. Penugasan selalu merupakan tindakan terakhir yang terjadi.
SINTAKS | REFERENSI |
---|---|
. (sumber titik) |
about_Operators |
& (Panggilan) |
about_Operators |
? <if-true> : <if-false> (Operator ternary) |
about_Operators |
?? (operator null-coalese) |
about_Operators |
| (operator alur) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (operator rantai alur) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Contoh
Dua perintah berikut menunjukkan operator aritmatika dan efek penggunaan tanda kurung untuk memaksa PowerShell mengevaluasi bagian ekspresi yang diapit terlebih dahulu.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
Contoh berikut mendapatkan file teks baca-saja dari direktori lokal dan menyimpannya dalam $read_only
variabel.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
Ini setara dengan contoh berikut.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
Karena operator alur (|
) memiliki prioritas yang lebih tinggi daripada operator penugasan (=
), file yang Get-ChildItem
didapat cmdlet dikirim ke Where-Object
cmdlet untuk pemfilteran sebelum ditetapkan ke $read_only
variabel.
Contoh berikut menunjukkan bahwa operator indeks lebih diutamakan daripada operator cast.
Ekspresi ini membuat array dari tiga string. Kemudian, ia menggunakan operator indeks dengan nilai 0 untuk memilih objek pertama dalam array, yang merupakan string pertama. Terakhir, ini melemparkan objek yang dipilih sebagai string. Dalam hal ini, pemeran tidak berpengaruh.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Ekspresi ini menggunakan tanda kurung untuk memaksa operasi transmisi terjadi sebelum pemilihan indeks. Akibatnya, seluruh array dilemparkan sebagai string (tunggal). Kemudian, operator indeks memilih item pertama dalam array string, yang merupakan karakter pertama.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
Dalam contoh berikut, karena -gt
operator (lebih besar dari) memiliki prioritas yang lebih tinggi daripada -and
operator (LOGICAL AND), hasil ekspresinya adalah FALSE.
PS> 2 -gt 4 -and 1
False
Ini setara dengan ekspresi berikut.
PS> (2 -gt 4) -and 1
False
Jika operator -dan memiliki prioritas yang lebih tinggi, jawabannya adalah TRUE.
PS> 2 -gt (4 -and 1)
True
Namun, contoh ini menunjukkan prinsip penting dalam mengelola prioritas operator. Ketika ekspresi sulit ditafsirkan orang, gunakan tanda kurung untuk memaksa urutan evaluasi, bahkan ketika memaksa operator default diutamakan. Tanda kurung membuat niat Anda jelas bagi orang-orang yang membaca dan memelihara skrip Anda.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk