私は私が私が7追加番号はPowerShellで関数から返さ
の代わりに値5を取得していISEでこれを実行するxの値function add3([int]$num) {
return ($num + 3);
}
[String]$argA = "AB";
[int]$x = (add3($argA.Length) + 2);
Write-Host($x)
を計算していPowerShellで、次の基本的なコードを持っています
私は私が私が7追加番号はPowerShellで関数から返さ
の代わりに値5を取得していISEでこれを実行するxの値function add3([int]$num) {
return ($num + 3);
}
[String]$argA = "AB";
[int]$x = (add3($argA.Length) + 2);
Write-Host($x)
を計算していPowerShellで、次の基本的なコードを持っています
を、あなたは、スペースではなく、カンマで区切られた引数をリストすることによって関数を呼び出すと、括弧は使用されません。これは混乱の一般的な原因です。あなたの式:($argA.Length)
と文字列+
と2
:
[int]$x = (add3($argA.Length) + 2);
はの引数を持つ関数add3
への呼び出しです。関数には引数が1つしかないので、結果は2 + 3 = 5
であり、残りの2つは破棄されます(余分なパラメータを持つ関数を呼び出すことはPowerShellではエラーではありません)。
$x = (add3 $argA.Length) + 2;
正しい出力が得られました。
ではなく、このアプローチを使用してみてください:PowerShellで
[int]$x = (add3($argA.Length)) + 2
あなたは理由を説明することができます:
function add3([int]$num, $y, $z) { Write-Host $y; Write-Host $z; return ($num + 3); }
ソリューションを適切に表現を括弧ことです:あなたは、これはあなたの機能を変更することで何が起こっているかであることを確認することができますか? – Michael
function add3($num) {
return ($num + 3);
}
[String]$argA = "AB";
$x = (add3($argA.Length)) +2
Write-Host($x)
説明をありがとう。 – Michael