当前位置: 移动技术网 > IT编程>脚本编程>Shell > PowerShell中的函数重载示例

PowerShell中的函数重载示例

2017年12月08日  | 移动技术网IT编程  | 我要评论

在powershell中,我们可以使用function关键字来定义一个函数,比如:

function get-data {
 param (
  [int] $data = -1
 )
 return $data;
}

这个名为get-data的函数接收一个int类型的参数$data,直接将其返回。那么,我同时还需要一个接收string类型的get-data函数怎么办?方法比较奇怪,至少和传统的c++之类的语言不同。

在powershell中定义重载函数,需要指定参数所属的parameter set,如下:

function global:get-data {
 param (
  [parameter(parametersetname="byint", position=0)] [int] $intdata,
  [parameter(parametersetname="byswitch", position=0)] [switch] $booldata,
  [parameter(parametersetname="byarray", position=0)] [string[]] $arraydata
 )
 write-host $pscmdlet.parametersetname
}

不难发现,parametersetname指定了每个参数所属的parameterset,position表示这是一个匿名参数。而$pscmdlet.parametersetname表示了当前所使用的parameter set。用例如下:

ps > get-data 1
byint
ps > get-data "a"
byarray
ps > get-data -booldata
byswitch

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网