通常,这是一个简单的问题,只需简单搜索大多数编程语言即可得到答案,但在 PowerShell 中,这并不那么容易。
如果通过点源包含脚本或包含模块,它们的脚本变量被传输到调用脚本中,那么拥有全局变量有什么意义?
有人可以帮我澄清一下吗?
最佳答案
不仅变量有作用域,函数定义也有作用域。
全局化的好处是每个人都可以使用它们。想象一下,您正在导入一个定义了一些函数的模块,但您无法使用它们。
关于模块中的全局变量...我很少使用它们,除非它们可以控制某些行为,例如 PS 已经拥有的各种 *Preference
变量。
顺便说一句,当对脚本进行点采购时,您不一定会将范围设为全局。点源只是在当前范围内执行脚本,而不是为脚本创建脚本。因此,当在函数中对某些内容进行点采购时,您只能从该函数中的脚本中获取内容。
关于PowerShell - 全局变量有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619628/