在声明中使用Powershell返回的问题

时间:2013-09-03 08:06:48

标签: powershell

function a()
{
   return 10
}

$b = 10
write-Host "b = $b"

[int]$b += a
write-Host "b = $b"

[int]$b = a + 10
write-Host "b = $b"

Output for the above script is:

b = 10
b = 20
b = 10

我在C中有编程背景,最近开始在PS编程。我试着编写一个简单的程序,它使用语句中函数的返回值。我对结果感到困惑。以下陈述的工作方式不同。

[int]$b += a
[int]$b = a + 10

有人可以解释一下原因吗?

此致

Jugari

2 个答案:

答案 0 :(得分:3)

C程序员真的很奇怪。

[int]$b = a + 10表示您使用两个参数调用函数try [int]$b = (a) + 10

使用此功能重试

function a()
{
   write-host $args.count
   return 10
}

您还必须非常小心函数返回的值。

答案 1 :(得分:0)

我怀疑解释器试图将'+ 10'作为参数传递给你的函数;因为您的函数中没有指定参数,所以它们被设置为null。在你的函数调用周围加上括号可以防止这种情况发生,我怀疑你是否按照预期工作。

[int]$b = (a) + 10
write-Host "b = $b"