gpt4 book ai didi

arrays - 快速引用对象

转载 作者:搜寻专家 更新时间:2023-11-01 07:02:35 30 4
gpt4 key购买 nike

我是 swift 的新手,最近我根本没有编写太多程序。我正在尝试将数组中的数组分配给变量。但据我所知,我只获得了该数组的一个副本(这样,如果数组数组的成员后来发生变化,副本不会发生变化。我如何获得对原始对象的引用?

这是一些代码(包含在“class ViewController: UIViewController”之前以获取全局变量):

var g1 = [2,0,0,0,0]
var g2 = [2,0,0,0,0]
var g3 = [2,0,0,0,0]
var g4 = [3,0,0,0,0]
var g5 = [3,0,0,0,0]
var g6 = [4,0,0,0,0]
var g7 = [5,0,0,0,0]

let groids: Array = [g1, g2, g3, g4, g5, g6, g7]

稍后,作为某些函数的一部分,我想为 groids 的成员之一分配一个变量“a”,但正如我所说的,不是该成员的副本而是该成员本身。我该怎么做呢?请记住,我的编程经验很少。

最佳答案

您不会获得对“原始对象”的引用,因为在 Swift 中,数组不是引用类型;它们是值类型。这意味着它们的行为就好像它们总是被复制一样。 (在幕后,事情的实现效率更高,但设计是它们似乎总是被复制。)

如果您之前的唯一经验是使用将数组视为引用类型的语言(这意味着几乎所有流行的语言,如 C、C++、C#、Java、Python、Ruby、JavaScript 等),这可能需要一段时间才能完成习惯了。

这里有一些替代方案:

  1. 使用 NSArray 而不是 ArrayNSArray 是一个引用类型。

  2. 传递您感兴趣的数组索引或 KeyPathKeyPath 记录在 The Swift Programming Language 中.

  3. 使用 inout 参数,这些参数也记录在 The Swift Programming Language 中.

关于arrays - 快速引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238587/

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