我正在编写一个PowerShell函数,该函数将使用哈希表作为参数之一。
我在做一些不好的事情吗?第二,有更好的方法吗?
代码:
function removeItem
{
Param(
[Parameter(Mandatory=$True)]
[string]$path,
[string]$writetoText,
$hashWrite = @{}
)
}
简短回答:否
我看不出为什么使用[hashtable]
或任何其他数据类型作为参数是不好的做法,至少在真空中是这样。如果你给了我们一些你打算用它做什么的想法,那么我们可能会告诉你一个更好的方法来实现你的目标。
示例
如果您的意图是将许多相关参数传递到函数中,但它们仅在存在某些其他参数或具有某些值的情况下适用,那么我认为在PowerShell中简单地使用[hashtable]
是不好的做法。
为什么?因为您可以使用参数集和动态参数来实现这一点,而语言将支持它(通过自动生成帮助、制表符完成值等),并处理您必须编写代码的大部分验证。