Simplificando a Lógica Condicional com Operadores Ternários em PowerShell

A construção if/then é comum no código do PowerShell, mas você sabia que há outra maneira chamada operador ternário que permite tornar suas construções if/then muito mais concisas? Vamos aprender como construir um operador ternário personalizado no PowerShell.

Em detrimento da legibilidade, alguns dizem que o operador ternário constrói uma lógica condicional mais concisa, mais simples e com menos código. Eles estão corretos, mas é tão bom ter esse comportamento semelhante ao ternário no PowerShell!

Se você não está familiarizado com um operador ternário, basicamente é usar uma hashtable ou uma construção similar para tomar uma decisão condicional com base em critérios.

If/Then no PowerShell

Para explicar o operador ternário do Powershell, vamos começar com um exemplo de uma construção if/then.

$CarColor = 'Blue'
if ($CarColor -eq 'Blue') {
    'The car color is blue'
} else {
    'The car color is not blue'
}

À primeira vista, você pode não achar que há algo de errado com ele. Na verdade, não há, mas essa condição poderia ser testada da mesma forma com uma única linha (dentro do meu limite pessoal de 115 caracteres).

Agora construa uma hashtable do PowerShell com duas chaves: $true e $false. Em seguida, defina os valores que você gostaria de exibir se uma condição que você define for atendida.

@{ $true = 'The car color is blue'; $false = 'The car color is not blue' }
[$CarColor -eq 'Blue']

Em seguida, defina a condição ($CarColor é Azul) e verifique se essa condição é atendida com $CarColor -eq 'Azul'.

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}
$CarColor -eq 'Blue'

Agora use a condição ($CarColor -eq 'Azul') como uma chave nesse hashtable. Fazendo isso, realiza a verificação e depois usa o resultado para procurar a chave no hashtable.

Finalizando o Operador Ternário do PowerShell

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}[$CarColor -eq 'Blue']
A custom PowerShell ternary operator

Em uma única linha! Não é muito mais sucinto? Em vez de usar uma instrução if/then, estou usando um hashtable e realizando uma pesquisa com base em se $CarColor é igual a Azul ou não. O índice resultante é então exibido no console. Se você quiser usar esse método, é tão simples quanto preencher essas lacunas:

@{$true = $ResultyouwanttodoifTrue; $false = $ResultyouwantifFalse}[]

Você também pode incluir mais do que apenas $true e $false se desejar. Você pode adicionar qualquer número de condições no hashtable e verificá-las. É uma maneira fácil de substituir instruções if/then longas ou instruções switch.

Agora você tem um operador ternário personalizado do PowerShell que pode começar a usar em seus scripts hoje!

Source:
https://adamtheautomator.com/powershell-ternary/