gpt4 book ai didi

Powershell错误返回哈希表

转载 作者:行者123 更新时间:2023-12-03 23:49:28 24 4
gpt4 key购买 nike

任何人都知道为什么以下代码会产生错误,请参阅函数后的附加注释以获取更多详细信息

function callee    ([Hashtable]$arg0) {
[Hashtable]$hashtable = @{}
$hashtable = $arg0
$hashtable.add('passed', $True)
# $hashtable ######## toggle this line
$type = $hashtable.GetType()
Write-Host "$type"
return $hashtable
}

function caller {
[Hashtable]$hashtable = @{'00'='0'}
$hashtable = callee $hashtable ##### returns error here
$hashtable.add('returned', $True)
$hashtable
}
caller

错误信息:无法将“System.Object[]”类型的“System.Object[]”值转换为“System.Collections.Hashtable”类型。

我在各种情况下都收到错误,我试图将其缩小到一个易于重现的示例。看起来它正在将哈希表更改为对象数组,这就是为什么它不会返回它?它允许我修改哈希表并返回它,但是当我尝试显示它时它会改变它吗?这和我开始向被调用函数添加代码时得到的效果一样吗?

最佳答案

当您取消注释 # $hashtable 时,您会从函数中输出两件事。该函数的结果是它的所有“输出”,PowerShell 会自动将多个输出包装到一个数组中。 return 语句是一种短路方便,不应与从函数返回值的唯一方法相混淆。

关于Powershell错误返回哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3744413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com