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
答案 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"