Lavorando a uno script PowerShell avevo diversi punti in cui volevo A a meno che non fosse null, altrimenti B. Essenzialmente il ?? operatore in C#. Ho finito per scrivere la funzione mostrata di seguito, ma non posso fare a meno di pensare che ci sia un modo integrato per farlo.Valori predefiniti per valori nulli
C'è un modo migliore, integrato?
function Get-ValueOrDefault()
{
foreach ($value in $args)
{
if ($value -ne $null) { return $value }
}
}
penso che questo funziona meglio:
function Get-ValueOrDefault() { $args | select -first 1 }
Un problema con la funzione è che se si passa booleani avrai risultati inaspettati. Dovrebbe invece confrontare $ valore -eq $ null. – Josh
Buon punto, Josh. – OldFart
In una domanda simile http://stackoverflow.com/questions/10623907/null-coalescing-in-powershell è stato suggerito ($ value, 'default' -ne $ null) [0] nella risposta http: // stackoverflow. com/a/17647824/52277 –