about_Operator_Precedence
Krátký popis
Zobrazí seznam operátorů PowerShellu v pořadí priority.
Dlouhý popis
Operátory PowerShellu umožňují vytvářet jednoduché, ale výkonné výrazy. Toto téma uvádí operátory v pořadí priority. Pořadí priorit je pořadí, ve kterém PowerShell vyhodnotí operátory, když se ve stejném výrazu zobrazí více operátorů.
Pokud mají operátory stejnou prioritu, PowerShell je vyhodnotí zleva doprava, jak se zobrazují ve výrazu. Výjimkou jsou operátory přiřazení, operátory přetypování a operátory negace (!
, -not
, -bnot
), které se vyhodnocují zprava doleva.
K přepsání standardního pořadí priority můžete použít skříně, jako jsou závorky, a vynutit, aby PowerShell vyhodnotil uzavřenou část výrazu před nezařazenou částí.
V následujícím seznamu jsou operátory uvedeny v pořadí, v jakém se vyhodnocují. Operátory na stejném řádku nebo ve stejné skupině mají stejnou prioritu.
Sloupec Operátor zobrazí seznam operátorů. Sloupec Reference obsahuje téma nápovědy PowerShellu, ve kterém je operátor popsaný. Chcete-li zobrazit téma, zadejte get-help <topic-name>
.
OPERÁTOR | ODKAZ |
---|---|
$() @() () @{} |
about_Operators |
. ?. (přístup člena) |
about_Operators |
:: (statické) |
about_Operators |
[0] ?[0] (operátor indexu) |
about_Operators |
[int] (operátory přetypování) |
about_Operators |
-split (unární) |
about_Split |
-join (unární) |
about_Join |
, (operátor čárky) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (operátor rozsahu) |
about_Operators |
-f (operátor formátu) |
about_Operators |
- (unární/negativní) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Následující skupina operátorů má stejnou prioritu. Jejich varianty nerozlišující velká a malá a velká písmena mají stejnou prioritu.
OPERÁTOR | ODKAZ |
---|---|
-split (binární) |
about_Split |
-join (binární) |
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 |
Seznam se tady obnoví s následujícími operátory v pořadí priority:
OPERÁTOR | ODKAZ |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
Následující položky nejsou pravdivé operátory. Jsou součástí syntaxe příkazů PowerShellu, nikoli syntaxe výrazů. Přiřazení je vždy poslední akcí, která se stane.
SYNTAXE | ODKAZ |
---|---|
. (dot-source) |
about_Operators |
& (zavolat) |
about_Operators |
? <if-true> : <if-false> (Ternární operátor) |
about_Operators |
?? (operátor null-coalese) |
about_Operators |
| (operátor kanálu) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (operátory řetězu kanálů) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Příklady
Následující dva příkazy ukazují aritmetické operátory a efekt použití závorek k vynucení PowerShellu k vyhodnocení uzavřené části výrazu jako první.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
Následující příklad získá textové soubory jen pro čtení z místního adresáře a uloží je do $read_only
proměnné.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
Odpovídá následujícímu příkladu.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
Vzhledem k tomu, že operátor kanálu (|
) má vyšší prioritu než operátor přiřazení (=
), odešlou se do rutiny soubory, které Get-ChildItem
rutina získá Where-Object
, za účelem filtrování před přiřazením $read_only
k proměnné.
Následující příklad ukazuje, že operátor indexu má přednost před operátorem přetypování.
Tento výraz vytvoří pole tří řetězců. Potom pomocí operátoru indexu s hodnotou 0 vybere první objekt v poli, což je první řetězec. Nakonec přetypuje vybraný objekt jako řetězec. V tomto případě nemá přetypování žádný vliv.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Tento výraz používá závorky k vynucení operace přetypování před výběrem indexu. Výsledkem je, že celé pole se přetypuje jako řetězec (jeden). Potom operátor indexu vybere první položku v řetězcovém poli, což je první znak.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
V následujícím příkladu, protože -gt
operátor (větší než) má vyšší prioritu než -and
operátor (logický OPERÁTOR AND), výsledek výrazu je NEPRAVDA.
PS> 2 -gt 4 -and 1
False
Je ekvivalentní následujícímu výrazu.
PS> (2 -gt 4) -and 1
False
Pokud má operátor vyšší prioritu, odpověď by měla hodnotu TRUE.
PS> 2 -gt (4 -and 1)
True
Tento příklad však ukazuje důležitou zásadu přednosti operátora správy. Pokud je pro lidi obtížné interpretovat výraz, použijte závorky k vynucení pořadí vyhodnocení, i když vynutí výchozí prioritu operátoru. Závorky závorky jasně ujasní lidem, kteří čtou a udržují vaše skripty.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro