gpt4 book ai didi

powershell - 为什么括号导致赋值产生结果?

转载 作者:行者123 更新时间:2023-12-03 01:21:20 25 4
gpt4 key购买 nike

考虑一下以下PowerShell:

PS> $x = 'y'
PS> ($x = 'y')
y

为什么添加括号会导致值被打印?

编辑:一些更有趣的情况:
 PS> $z = ($x = 'y')
PS> $z
y
PS> $( $x = $y )
PS> $z = $( $x = $y )
PS> $z

最佳答案

括号告诉 shell 程序首先评估括号内的值,然后打印结果。在您的第一个命令中,它是任务;但是,第二个命令将被评估并打印结果,即“y”

更新

PS> $z = ($x = 'y') # assignment, no print , ($x = 'y') returns 'y'
PS> $z
y
PS> $( $x = $y ) # this is a voidable expression whose result is discarded when used directly as a statement. so, $( $x = $y ) -eq $null
PS> $z = $( $x = $y ) # same to above
PS> $z

“PowerShell in Action”说明了子表达式构造和简单括号之间的区别是如何处理可空语句。 ++,-,+ =,-=操作也被视为无效语句。

在简单的括号()中,不会丢弃void语句,但是在子表达式$()中,它们会被丢弃。

关于powershell - 为什么括号导致赋值产生结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13188822/

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