Esta é uma boa pergunta e foi aprovada por mim. Eu sempre voto positivo SO perguntas que aparecem nas minhas pesquisas no google e me ajudam. Esses 4 defensores do voto deveriam realmente repensar sua atitude em relação a perguntas fáceis e básicas como esta.
21712 ulidtko
Respostas:
172
$true e $false .
Essas são constantes, no entanto. Não há literais no nível do idioma para booleanos.
Dependendo de onde você precisar deles, você também pode usar qualquer coisa que coagir a um valor booleano, se o tipo precisar ser booleano, por exemplo, em chamadas de método que exijam booleano (e sem sobrecarga conflitante) ou declarações condicionais. A maioria dos objetos não nulos é verdadeira, por exemplo. null, cadeias vazias, matrizes vazias e o número 0são falsos.
Para ser preciso, você pode usar muitas coisas que podem ser coagidas a booleanas em contextos em que a conversão está ocorrendo, por exemplo, em uma declaração condicional. E nesses casos, você não precisa transmitir absolutamente. if ($s.Length) { ... }está perfeitamente bem, por exemplo.
Joey
5
Para adicionar mais informações às respostas já existentes : Os literais booleanos $truee $falsetambém funcionam como quando são usados como parâmetros de linha de comando para scripts do PowerShell (PS). Para o script PS abaixo, que é armazenado em um arquivo chamado installmyapp.ps1:
Agora, se eu tiver que invocar esse arquivo PS a partir de uma linha de comando PS, é assim que posso fazê-lo:
installmyapp.ps1 -cleanuprequired $true
OU
installmyapp.ps1 -cleanuprequired 1
Aqui 1e $truesão equivalentes. Além disso, 0e $false são equivalentes.
Nota : Nunca espere que o literal da string truepossa ser convertido automaticamente em booleano. Por exemplo, se eu executar o comando abaixo:
installmyapp.ps1 -cleanuprequired true
falha ao executar o script com o erro abaixo:
Não é possível processar a transformação do argumento no parâmetro 'cleanuprequired'. Não é possível converter o valor "System.String" para o tipo "System.Boolean". Os parâmetros booleanos aceitam apenas valores e números booleanos, como $ True, $ False, 1 ou 0.
Respostas:
$true
e$false
.Essas são constantes, no entanto. Não há literais no nível do idioma para booleanos.
Dependendo de onde você precisar deles, você também pode usar qualquer coisa que coagir a um valor booleano, se o tipo precisar ser booleano, por exemplo, em chamadas de método que exijam booleano (e sem sobrecarga conflitante) ou declarações condicionais. A maioria dos objetos não nulos é verdadeira, por exemplo.
null
, cadeias vazias, matrizes vazias e o número0
são falsos.fonte
[bool]1
e[bool]0
também funciona.fonte
if ($s.Length) { ... }
está perfeitamente bem, por exemplo.Para adicionar mais informações às respostas já existentes : Os literais booleanos
$true
e$false
também funcionam como quando são usados como parâmetros de linha de comando para scripts do PowerShell (PS). Para o script PS abaixo, que é armazenado em um arquivo chamadoinstallmyapp.ps1
:Agora, se eu tiver que invocar esse arquivo PS a partir de uma linha de comando PS, é assim que posso fazê-lo:
OU
Aqui
1
e$true
são equivalentes. Além disso,0
e$false
são equivalentes.Nota : Nunca espere que o literal da string
true
possa ser convertido automaticamente em booleano. Por exemplo, se eu executar o comando abaixo:falha ao executar o script com o erro abaixo:
fonte