目前,我使用以下语法在PowerShell函数内显式访问私有范围变量:
function MyPowershellFunction {
param($param1)
# ...
# lot of code here
# ...
# access variable x on private scope explicitly
if ($private:x) {
# do something
}
}
我这样做是为了不小心引用父范围中定义的变量。但是这个代码看起来很丑陋。有更简单的方法吗?
答案 0 :(得分:3)
通过创建变量private
,您可以将其可见性限制为当前范围。由于变量是在当前范围内查找的,因此只要您不离开范围,首先$x
会在最初声明private
之后为您提供私有变量。不必一直使用范围修饰符。
答案 1 :(得分:0)
只需使用Local scope修饰符:
function MyPowershellFunction {
param($param1)
# access variable x on private scope explicitly
if ($local:x) {
# do something
}
}
if语句未在父作用域中看到任何$ x。