Ternary operator in PowerShell

后端 未结 13 2111
忘掉有多难
忘掉有多难 2020-11-28 03:56

From what I know, PowerShell doesn\'t seem to have a built-in expression for the so-called ternary operator.

For example, in the C language, which supports the terna

13条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-11-28 04:23

    I've recently improved (open PullRequest) the ternary conditional and null-coalescing operators in the PoweShell lib 'Pscx'
    Pls have a look for my solution.


    My github topic branch: UtilityModule_Invoke-Operators

    Functions:

    Invoke-Ternary
    Invoke-TernaryAsPipe
    Invoke-NullCoalescing
    NullCoalescingAsPipe
    

    Aliases

    Set-Alias :?:   Pscx\Invoke-Ternary                     -Description "PSCX alias"
    Set-Alias ?:    Pscx\Invoke-TernaryAsPipe               -Description "PSCX alias"
    Set-Alias :??   Pscx\Invoke-NullCoalescing              -Description "PSCX alias"
    Set-Alias ??    Pscx\Invoke-NullCoalescingAsPipe        -Description "PSCX alias"
    

    Usage

     |?:  
    
     |?? 
    

    As expression you can pass:
    $null, a literal, a variable, an 'external' expression ($b -eq 4) or a scriptblock {$b -eq 4}

    If a variable in the variable expression is $null or not existing, the alternate expression is evaluated as output.

提交回复
热议问题