Когда PowerShell видит токен Return-True
, он идентифицирует его как команду, и до оценки или до конца инструкции все остальное является аргументом, который передается функции Return-True
.
Вы можете увидеть это в действии, если сделаете:
PS > function Return-True { "The arguments are: $args"; return $true }
PS > Return-True -eq $false
The arguments are: -eq False
True
Вот почему все последующее возвращает 'True', потому что все, что вы видите, является результатом вызова Return-True
с различными аргументами:
PS > Return-True -eq $false
True
PS > Return-True -ne $false
True
PS > Return-True -eq $true
True
PS > Return-True -ne $true
True
Использование (Return-True)
заставляет PowerShell вычислять функцию (без аргументов).