gpt4 book ai didi

PowerShell:括号表达式的区别

转载 作者:行者123 更新时间:2023-12-02 22:20:16 24 4
gpt4 key购买 nike

我一直在试验涉及括号的不同形式的运算符/表达式,但我找不到我遇到的交互的解释。即,( )$( ) (子表达式运算符)不是等价的。也不等同于 @( ) (数组运算符)。对于大多数情况,这无关紧要,但是当尝试将括号的内容作为表达式(例如,变量赋值)求值时,它们是不同的。我正在寻找有关括号在不是明确的一个运算符或另一个运算符以及 about_ 时在做什么的答案。文件没有提到这一点。

($var = Test-Something) # -> this passes through
$($var = Test-Something) # -> $null
@($var = Test-Something) # -> $null

about_Operators

最佳答案

对于 arraysubexpression运算符,括号只是语法上需要的。它们的唯一目的是包装应该应用运算符的表达式。
一些例子:

# always return array, even if no child items found
@(Get-ChildItem -Filter "*.log").Count

# if's don't work inside regular parentheses
$(if ($true) { 1 } else { 0 })
当您(仅)在变量赋值周围放置括号时,这称为 variable squeezing .
$v = 1 # sets v to 1 and returns nothing
($v = 1) # sets v to 1 and returns assigned value
通过将变量压缩与子表达式运算符语法(即添加第二对括号)相结合,您可以获得所有示例的 pass-thru 版本:
($var = Test-Something)
$(($var = Test-Something))
@(($var = Test-Something))

关于PowerShell:括号表达式的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52896030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com