gpt4 book ai didi

powershell - ' =' is not the same as ' =' | Declaration Reference Link - don' 不知道怎么调用这个

转载 作者:行者123 更新时间:2023-12-03 09:54:10 25 4
gpt4 key购买 nike

我不明白以下 PowerShell 代码示例的行为。

$a=1..3
$b=$a
$b[0]="1000"
$a

$c = "Cat"
$d=$c
$d="Dog"
$c

$e=1..3
$f=$e+4
$f[0]="1000"
$e

命令行结果是:

1000
2
3

Cat

1
2
3

为什么我在第一部分有类似“链接”的内容。 $b 似乎是指向 $a 的链接。因此,如果我更改 $b,那么 $a 似乎真的被更改了。

在第二部分中,$c$d 是两个不同的变量,但我认为我在第一部分中做了同样的事情。为什么我这里有两个不同的变量而不是“链接”?

在第三部分中,我的操作与第一部分相同,但添加了一个 +1。现在我没有“链接”。我又有两个不同的变量。

谁能告诉我这些例子之间的区别是什么?

最佳答案

第一个示例表明修改对象的一部分不会更改引用。

第二个和第三个示例表明分配新对象不会更改对先前对象的其他引用。

更详细:

$a=1..3

$a 是对包含三个整数的(新)数组的引用。

$b=$a

$b 引用同一个数组对象。

$b[0]="1000"

数组中的一个值被改变

$a

并且该更改对同一数组的其他引用可见。

例子二:

$c = "Cat"

$c 是对新字符串对象的引用。

$d=$c

$d 现在是对同一个字符串对象的引用

$d="Dog"

但它现在是对不同字符串对象的引用。

$c

最后的赋值不会改变 $c 引用的字符串对象。

(第三个例子是同样的事情,$f=$e+4创建了一个新的数组对象。)

关于powershell - ' =' is not the same as ' =' | Declaration Reference Link - don' 不知道怎么调用这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com