我了解这段代码的作用,但不了解它的作用。
$($c=$p=1; while ($c -lt 100) {$c; $c,$p=($c+$p),$c})
这部分{$c; $c,$p=($c+$p),$c}
在每个循环中进行处理。我明白了,但我不明白那$c,$p=($c+$p),$c
部分。这里是一个数组吗?有人能解释一下每个循环到底发生了什么吗?
这是我认为会发生什么。
$c;
允许显示要输出的当前值。$c,$p=($c+$p),$c
计算斐波那契数列中的下一个值并更新$c
并且$p
相等。但是为什么这种类似数组的语法呢?它是如何工作的 ?$c= $p = 1 # $c = 1, $p = 1
while ($c -lt 100) # while $c is lower than 100
{
$c # $c to Standard Output
$c, $p = ($c+$p), $c
# ($c + $p) is processed first, on first iteration 1+1
# 2, $c this generates an array @(2, 1) on first iteration
# $c, $p = This assigns the position 0 of the array to $c
# and position 1 to $p
}
如果你真的想分解代码,这或多或少(如果这不是 100% 准确,我很抱歉)正在发生的事情:
$c = $p = 1
while ($c -lt 100)
{
$c
$temp1 = $c + $p
$temp2 = $c
$c = $temp1
$p = $temp2
}
来自关于赋值运算符的MS Docs
在 PowerShell 中,您可以使用单个命令为多个变量赋值。赋值的第一个元素分配给第一个变量,第二个元素分配给第二个变量,第三个元素分配给第三个变量,依此类推。这称为多重赋值。
PS /> $one,$two = 'one','two'
PS /> $one
one
PS /> $two
two
PS /> $one,$two = @(
'one'
'two'
)
PS /> $one
one
PS /> $two
two
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句