gpt4 book ai didi

arrays - Powershell:引用数组中的单个元素

转载 作者:行者123 更新时间:2023-12-02 22:12:08 24 4
gpt4 key购买 nike

我想使用 [ref] 关键字引用数组中的单个元素。
如何测试引用:

$var1 = "this is a string"
[ref]$var2 = [ref]$var1

$var2.Value
this is a string

$var2.Value += " too!"
$var2.Value
this is a string too!

$var1
this is a string too!
以上按预期工作。但是现在要引用任何数组中的单个元素?
$var3="string 1", "string 2", "string 3"
[ref]$var2=[ref]($var3[1])

$var2.Value
string 2

$var2.Value += " updated!"
$var2.Value
string 2 updated!

$var3[1]
string 2
我期待 $var3[1]返回与 $var2.Value 相同的值.我究竟做错了什么?

最佳答案

在 PowerShell 中,您无法获得对数组单个元素的引用。
要获得对数组特定元素的写访问权限,您唯一的选择是:

  • 使用对整个数组的引用
  • 并通过索引引用感兴趣的元素。

  • 换句话说:
    给定 $var3 = "string 1", "string 2", "string 3" , 修改存储在 $var3 中的数组的第二个元素的唯一方法是使用 $var3[1] = ... (通过按需编译的 C# 代码禁止杂技)。

    至于 你试过什么 :

    [ref] $var2 = [ref] ($var3[1])


    在 PowerShell 中, 如果你得到 $var3[1] 的值,它总是存储在 $var3 中的数据的副本。的第二个元素 (这可能是实际数据的副本,如果元素包含值类型的实例,或者引用类型的实例的引用的副本,否则)。
    将该副本转换到 [ref] 因此总是与原始数组元素分离。

    关于arrays - Powershell:引用数组中的单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62903170/

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