PowerShell V4 - 将哈希表传递给函数
PowerShell V4 - Passing a hashtable to a function
我正在编写一个将哈希表作为参数之一的 PowerShell 函数。
我是不是在做一些不好的事情?其次,有没有更好的方法呢?
代码:
function removeItem
{
Param(
[Parameter(Mandatory=$True)]
[string]$path,
[string]$writetoText,
$hashWrite = @{}
)
}
简短回答:否
我看不出有任何理由使用 [hashtable]
或任何其他数据类型作为参数是不好的做法,至少在真空中是这样。如果您告诉我们您打算用它做什么,那么我们可能会告诉您实现目标的更好方法。
例子
如果您打算将许多相关参数传递给函数,但它们仅在某些其他参数存在或具有特定值时才适用,那么我认为在 PowerShell 中简单地使用 [hashtable]
为此。
为什么?因为您可以使用 Parameter Sets and Dynamic Parameters 以语言支持的方式(通过自动生成帮助、制表符完成值等)来执行此操作,并处理您必须为其编写代码的大部分验证。
我正在编写一个将哈希表作为参数之一的 PowerShell 函数。
我是不是在做一些不好的事情?其次,有没有更好的方法呢?
代码:
function removeItem
{
Param(
[Parameter(Mandatory=$True)]
[string]$path,
[string]$writetoText,
$hashWrite = @{}
)
}
简短回答:否
我看不出有任何理由使用 [hashtable]
或任何其他数据类型作为参数是不好的做法,至少在真空中是这样。如果您告诉我们您打算用它做什么,那么我们可能会告诉您实现目标的更好方法。
例子
如果您打算将许多相关参数传递给函数,但它们仅在某些其他参数存在或具有特定值时才适用,那么我认为在 PowerShell 中简单地使用 [hashtable]
为此。
为什么?因为您可以使用 Parameter Sets and Dynamic Parameters 以语言支持的方式(通过自动生成帮助、制表符完成值等)来执行此操作,并处理您必须为其编写代码的大部分验证。