gpt4 book ai didi

swift - 隐式展开可选的不可变

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:13 26 4
gpt4 key购买 nike

为什么我不能改变隐式展开的可选变量?

这是一个重现问题的简短示例:

用数组

var list: [Int]! = [1]
list.append(10) // Error here

“[Int]”类型的不可变值只有名为“append”的可变成员

用整数

var number: Int! = 1
number = 2
number = 2 + number
number += 2 // Error here

找不到接受所提供参数的“+=”重载

最佳答案

因为您尝试改变它们的方式是改变值(不可变的)而不是改变 var

在 Swift 中,值类型是不可变的。始终如一。

突变不是值的突变,它是包含值的变量的突变。

Int的情况下,+=运算符在左边得到一个结构,在右边得到一个Int,它不能向一个int添加一个结构.

Array 的情况下,append 是一个可变成员。但它是在一个不直接存储在变量中的不可变值上调用的。它只能对直接存储在变量中的值进行操作(这就是使它们可变的原因:它们存储在变量中的事实。它们并不是真正可变的,变量是)。

关于swift - 隐式展开可选的不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040174/

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