PowerShell中的函数重载示例
程序员文章站
2022-06-24 11:00:26
在powershell中,我们可以使用function关键字来定义一个函数,比如:
function get-data {
param (
[int]...
在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
推荐阅读
-
js类中获取外部函数名的方法_javascript技巧
-
PHP中fopen,file_get_contents,curl函数的区别
-
Keras中的多分类损失函数用法categorical_crossentropy
-
c#中合并excel表格的方法示例
-
PHP中引述(变量和函数名前加&符号)的用法
-
php中echo()和print()、require()和include()等易混淆函数的区别_PHP
-
Python中的内置函数分享
-
Javascript 函数中的参数使用分析_javascript技巧
-
php中的数组操作函数整理
-
PHP实现Javascript中的escape及unescape函数代码分享,escapeunescape