接收来自函数

时间:2015-06-24 08:50:44

标签: powershell powershell-v2.0 powershell-v3.0

大家好日子! 我有一些函数将输入数组拆分为$ partitionCount分区。返回值应该是一个数组数组。 如果$ partitionCount等于1,则不需要执行某些拆分逻辑,您可以返回输入数组本身。在这种情况下,powershell将返回结果展平为简单数组(不是根据需要的数组数组)。

我尝试过使用Stackoverflow和其他资源找到的方法:

  1. return @($input) 将结果展平为单个数组
  2. return @(,$input) 也将结果展平为单个数组
  3. return @($input, @()) 它工作但使用空数组来防止扁平化,坏的一个
  4. $bucket = @(Split-Array $input 1)
  5. 在调用网站中放置一个数组指令,工作正常,但你应该把它放在每个调用中,这很麻烦而且不明显

    有没有正确的方法来处理这种情况?

1 个答案:

答案 0 :(得分:1)

要防止展示单项数组,请在您尝试返回的数组前添加逗号(,@($value)):

function Get-SingleArray {
    param($InputArray)

    return ,@($InputArray[0])
}

演示:

PS C:\> $a = Get-SingleArray 2,3,4,5
PS C:\> $a[0] -eq 2
True
PS C:\> $a.GetType.FullName
System.Object[]