我想在一个模块中有一个变量我想重复使用。让我们说这是一个常数。
#MyModule.psm1
$MyVar = randomObject
Export-ModuleMember -Variable MyVar
#Get-Stuff.ps1
Import-Module -Name $moduleName
$randomVar = $MyVar.Property
我的意思是,我可以使用常规约定但是编码器如何知道这个变量是从导入的模块实例化的?
答案 0 :(得分:2)
在我的意见中,您可能不应该首先导出变量。到目前为止,我还没有看到令人信服的理由。
相反,我宁愿导出一个函数,即使它只返回一个函数。它更安全,更通用,更明显等等。但是,导入您的模块的人必须通过阅读您的文档或仅仅熟悉它来了解它。它并不像看到导出的函数那么容易。
如果您担心名称冲突,那么在命名变量方面你有很大的自由度,特别是如果你想让它真的很难引用:
${Some really ___ weird um, variable n@m3} = randomObject