2017-05-29 7 views
0

私は私が私が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で、次の基本的なコードを持っています

答えて

0

を、あなたは、スペースではなく、カンマで区切られた引数をリストすることによって関数を呼び出すと、括弧は使用されません。これは混乱の一般的な原因です。あなたの式:($argA.Length)と文字列+2

[int]$x = (add3($argA.Length) + 2); 

はの引数を持つ関数add3への呼び出しです。関数には引数が1つしかないので、結果は2 + 3 = 5であり、残りの2つは破棄されます(余分なパラメータを持つ関数を呼び出すことはPowerShellではエラーではありません)。

$x = (add3 $argA.Length) + 2; 
+0

説明をありがとう。 – Michael

0

正しい出力が得られました。

ではなく、このアプローチを使用してみてください:PowerShellで

[int]$x = (add3($argA.Length)) + 2 
+0

あなたは理由を説明することができます:

function add3([int]$num, $y, $z) { Write-Host $y; Write-Host $z; return ($num + 3); } 

ソリューションを適切に表現を括弧ことです:あなたは、これはあなたの機能を変更することで何が起こっているかであることを確認することができますか? – Michael

0
function add3($num) { 
    return ($num + 3); 
} 

[String]$argA = "AB"; 
$x = (add3($argA.Length)) +2 

Write-Host($x) 
関連する問題