Loo*_*oom 4 powershell function syntax-error argument-passing
我正在尝试编写一个简单的除法函数,但是我得到了一个错误
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
Run Code Online (Sandbox Code Playgroud)
我的错是什么?谢谢
您正在调用该函数.函数调用的Powershell语法是:
Div 1 1
Run Code Online (Sandbox Code Playgroud)
而(1,1)是一个Object [].
如果你想防止这样的使用错误,请将函数声明为:
Function Div([Parameter(Mandatory=$true)][double]$x, [Parameter(Mandatory=$true)][double]$y) { $x / $y }
Run Code Online (Sandbox Code Playgroud)
[Parameter(Mandatory = $ true)]确保给出两个值.并且除非总是给出整数,否则除非总是在Powershell中执行双除法,因此强制类型[double]不会停止整数使用并确保输入类型符合您的预期.