gpt4 book ai didi

Swift:如何通过引用分配一个可选的

转载 作者:行者123 更新时间:2023-11-28 07:04:13 25 4
gpt4 key购买 nike

给定以下代码:

    class Node {
var value: Int
var left: Node?
var right: Node?
init (value: Int) {
self.value = value
}
}

root = Node(value: 200)

然后下面的代码给root.left分配了一个新节点:

    var temp1 = root
temp1!.left = Node(value: 400)

但是下面并没有给root.right分配一个新的节点:

    var temp2 = root!.right
temp2 = Node(value: 300)

大概在最后一个代码片段中 root!.right 按值分配给 temp2,如果是这样,那么是否有通过引用分配它的方法?

最佳答案

这实际上与可选值无关——如果属性 Node.leftNode.right 不是可选值,则会发生相同的行为。相反,这与 Swift 类属性有关。

在您之前的示例中,您将 temp1 指向 root 指向的同一类实例。因此,roottemp1Node 的同一个实例,因此当您在其中设置一个属性时,当您从其他。

在后一个示例中,您将获取 root!.right 的值(当前为 nil)并将其设置为新变量 temp2。您正在创建一个新的类实例,因此您最终会得到两个单独的类实例。当您分配给 root.right 时,它不会影响 temp2(反之亦然)。

关于Swift:如何通过引用分配一个可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31214686/

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