欢迎来到代码驿站!

当前位置:首页 >

PowerShell中的函数重载示例

时间:2022-02-25 10:16:30|栏目:|点击:

在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

更多关于PowerShell函数参数的介绍,可以看TechNet上的相关介绍,或者在PowerShell控制台中运行命令:help about_Functions_Advanced_Parameters

上一篇:Docker快速入门以及环境配置详解

栏    目:

下一篇:docker 容器上编译 go 程序提示找不到文件问题

本文标题:PowerShell中的函数重载示例

本文地址:http://www.codeinn.net/misctech/194528.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有