我试图写一个简单的除法函数,但是我得到了一个错误
PS C:\Users\john> Function Div($x, $y) { $x / $y }
PS C:\Users\john> Div (1, 1)
Method invocation failed because [System.Object[]] doesn't contain a method named 'op_Division'.
At line:1 char:28
+ Function Div($x, $y) { $x / <<<< $y }
+ CategoryInfo : InvalidOperation: (op_Division:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound我的错误是什么?谢谢
发布于 2011-10-20 05:26:24
您调用的函数不正确。函数调用的Powershell语法为:
Div 1 1而(1,1)是一个Object[]。
如果您想防止类似的用法错误,请将函数声明为:
Function Div([Parameter(Mandatory=$true)][double]$x, [Parameter(Mandatory=$true)][double]$y) { $x / $y }参数(Mandatory=$true)确保给定两个值。而且,在Powershell中,除法总是执行双除法,即使给定了整数,因此强制使用双精度类型不会停止整数的使用,并将确保输入类型是您所期望的类型。
发布于 2011-10-20 05:28:03
您应该将除法运算符的参数强制转换为函数体中的整数,否则它们将被视为字符串(即使它们看起来像整数),并且字符串不支持/运算符:
[int] $x / [int] $y
https://stackoverflow.com/questions/7828325
复制相似问题