Математическая проблема PowerShell? - PullRequest
3 голосов
/ 29 мая 2011
function other3($x, $y)
{
    $tmp = $x + $y
    return $tmp
}

$x = 5
$y = 10

$a = other3($x, $y)
Write-Host $a

Продолжает возвращать 5 10, когда должно возвращаться 15, в чем же дело?

Ответы [ 2 ]

10 голосов
/ 29 мая 2011

Чтобы вызвать other3 с двумя параметрами, удалите скобку «()», например:

$a = other3 $x  $y

То, как вы сейчас его вызываете, фактически передает один параметр, массив с двумя элементами, то есть 5 и10. Второй параметр пуст (вероятно, по умолчанию равен нулю), что означает, что добавление ничего не делает, и вы просто возвращаете параметр $ x.

2 голосов
/ 29 мая 2011

Вы передаете список (5,10) параметру $ x, а $ null - $ y.

Когда функция добавляет $ null в список, вы просто возвращаете список.

Добавление некоторых операторов write-host к функции должно прояснить это:

function other3($x, $y)
{
    $tmp = $x + $y
    write-host "`x=($x)"
    write-host "`y=($y)"
    return $tmp
}

$x = 5
$y = 10

$a = other3($x, $y)
Write-Host $a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...