在Powershell控制台中,如果我这样做:
PS C:\Users\Moomin\Documents> $global:myVar = "global"
PS C:\Users\Moomin\Documents> $myVar
global
PS C:\Users\Moomin\Documents> $myVar = "local"
PS C:\Users\Moomin\Documents> $myVar
local
PS C:\Users\Moomin\Documents> $global:myVar
local
为什么最后一个语句不返回global
?
如果我这样做会更加令人困惑:
PS C:\Users\Moomin\Documents> $myVar = $null
PS C:\Users\Moomin\Documents> $global:myVar
我没有得到任何回报。我希望得到global
。
答案 0 :(得分:3)
如果您使用的控制台不在您在全局操作的功能中,则范围基于您所使用的功能。
PS C:\> $myvar = 4
PS C:\> function PrintMyVar{$myvar = 6;$myvar}
PS C:\> PrintMyVar
6
PS C:\> $myvar
4
答案 1 :(得分:2)
来自MS about_scope:
Local:
The current scope. The local scope can be the global
scope or any other scope.
这就是$myVar
被覆盖的原因,并且最后一行没有返回任何内容。