PowerShell中的函数重载示例
在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
相关推荐
-
PowerShell中的函数重载示例
在PowerShell中,我们可以使用Function关键字来定义一个函数,比如: Function Get-Data { Param ( [int] $data = -1 ) return $data; } 这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回.那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C++之类的语言不同. 在PowerShell中定义重载函数,需要指定参数所属的Parameter Set,如下
-
通过实例理解javascript中没有函数重载的概念
将函数名想象为指针,也有助于理解为什么ECMAScript中没有函数重载的概念.如下例子: 复制代码 代码如下: function addSomeNum(num) { return num+100; } function addSomeNum(num) { return num+200; } var result=addSomeNum(100);//300 显然,这个例子中声明了两个同名函数,而结果则是后面的函数覆盖了前面的函数.以上代码实际上与下面的代码是一致的. 复制代码 代
-
JavaScript中的函数重载深入理解
在JavaScript中有一种特殊的数据类型---Function类型,JavaScript的每个函数都是Function类型的实例.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. <pre name="code" class="html">function sum(num1,num2) { return num1 +num2; } alert(sum(10,10)); //20 var other = sum; ale
-
C++语法中的函数重载和默认参数
C语言中没有函数重载 C++语言中有函数重载 函数名相同,参数个数不同.参数类型不同.参数顺序不同 例如下面就是函数重载 void sum(int a, int b){ cout << a+b << endl; } void sum(int a, double b){ cout << a+b << endl; } 返回值类型与函数重载无关 返回值类型与函数重载无关,下面代码不构成重载,编译会报错 //返回值类型与函数重载无关 int func(){ retu
-
pytorch中Parameter函数用法示例
目录 用法介绍 代码介绍 用法介绍 pytorch中的Parameter函数可以对某个张量进行参数化.它可以将不可训练的张量转化为可训练的参数类型,同时将转化后的张量绑定到模型可训练参数的列表中,当更新模型的参数时一并将其更新. torch.nn.parameter.Parameter data (Tensor):表示需要参数化的张量 requires_grad (bool, optional):表示是否该张量是否需要梯度,默认值为True 代码介绍 pytorch中的Parameter函数具
-
在Python中实现函数重载的示例代码
假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组.例如: connect('123.45.32.18:8080') connect(('123.45.32.18', 8080)) 你想在代码里面兼容这两种写法,于是你可能会这样写代码: def connect(address): if isinstance(address, str): ip, port = address.split(':') elif isinstance(address,
-
深度探究C++中的函数重载的用法
C++ 允许同一范围内具有相同名称的多个函数的规范.这些函数称为重载函数,"重载"中对其进行了详细介绍.利用重载函数,程序员可以根据参数的类型和数量为函数提供不同的语义. 例如,采用字符串(或 char *)参数的 print 函数执行的任务与采用"双精度"类型的参数的函数执行的任务截然不同.重载允许通用命名并使程序员无需创建名称,例如 print_sz 或 print_d.下表显示了 C++ 使用函数声明的哪些部分来区分同一范围内具有相同名称的函数组. 重载注意事
-
PowerShell中prompt函数的妙用
本文介绍PowerShell中的Prompt函数,并且通过Prompt函数来自定义PowerShell命令行界面的提示符. 在设计prompt函数之前,小编想把PowerShell命令行提示符改成zhanghong>,不知道可不可以.找来找去,找到了prompt这个函数.先来看看如下的一个函数定义: 复制代码 代码如下: function prompt{ "PS zhanghong> " } 这是一个非常普通的函数,没有什么实质性的不同.而且函数体里面的代码更是简单
-
MATLAB中print函数使用示例详解
目录 语法 说明 示例 打印图窗纸张副本 将图窗复制到剪贴板 将图窗另存为图像文件 将图窗另存为向量图形文件 向 EPS 文件添加 TIFF 预览 指定要保存的图窗 以屏幕大小和分辨率保存图窗 保存填满页面的图窗 保存图窗而不保存 UIControl 返回图窗的 RGB 图像数据 创建高分辨率影片帧 print函数的功能是打印图窗或保存为特定文件格式. 语法 print(filename,formattype) print(filename,formattype,formatoptions) p
-
PowerShell中给函数参数设置帮助信息的例子
本文介绍在PowerShell创建自定义函数时,如何为必选参数设置帮助信息. 下面这段代码,我们创建了一个test-function的函数.这个函数有一个参数p,它是必选参数.更进一步,我们为这个参数$p设置了一个helpMessage属性,这个属性的意思就是为这个必须参数提供帮助信息.因为是必选参数,所以在不输入值的情况下,函数是不会执行,而会提示为参数输入值的.如果用户不知道应该为这个参数输入什么值,那么这个HelpMessage有可能帮到忙. 复制代码 代码如下: PS C:\Users\
随机推荐
- angularjs指令中的compile与link函数详解
- 安全校验Session验证码并避免绕开验证码攻击
- vbs循环产生的参数的传递问题
- python学习笔记:字典的使用示例详解
- iOS 利用动画和贝塞尔实现咻咻效果
- 各浏览器对click方法的支持差异小结
- PHP之浮点数计算比较以及取整数不准确的解决办法
- jQuery 中ajax异步调用的四种方式
- 基于PHP5魔术常量与魔术方法的详解
- ASP木马后门新思路
- C++ operator关键字(重载操作符)的用法详解
- Java集合继承体系详解
- python+selenium实现京东自动登录及秒杀功能
- Linux中FTP账号无法删除文件夹的解决方案
- Android实现寻觅红桃A的翻牌游戏
- 详解如何将JAR包发布到Maven中央仓库
- 对python中dict和json的区别详解
- SQL Server 通过with as方法查询树型结构
- Java8 Stream对两个 List 遍历匹配数据的优化处理操作
- 手动添加jar包进Maven本地库内的方法