为什么下面的类型会改变?
function SomeFunction($SomeParameter){
return $SomeParameter
}
我想我需要设置一个返回类型,但是如何设置呢?
一个例子是使用:
$NewFolder=Join-Path $CurrentFolder -ChildPath $FolderName
$Tmp=SomeFunction($NewFolder)
Now $Tmp
是一个数组而不仅仅是一个路径
While 这个答案解释了这种行为你看到了,在这里我将尝试回答实际的问题:如何声明函数的预期输出类型!
您可以通过添加[OutputType]
归因于param()
你的函数块 - 所以你要做的第一件事就是跳过 C# 风格的参数列表并声明一个正确的param
改为阻止:
function SomeFunction
{
param($SomeParameter)
return $SomeParameter
}
现在我们只需要添加[OutputType]
属性装饰器:
function SomeFunction
{
[OutputType([string])]
param($SomeParameter)
return $SomeParameter
}
因为在本例中我们只是按原样返回参数参数值,所以我们应该表现得很好并确保它实际上也是一个字符串:
function SomeFunction
{
[OutputType([string])]
param(
[string]$SomeParameter
)
return $SomeParameter
}
值得注意的是[OutputType()]
makes 没有保证至于执行期间发出的对象类型,它只是函数作者指示的一种方法intended输出类型。
阅读更多关于[OutputType]
in the about_Functions_OutputTypeAttribute帮助文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)