gpt4 book ai didi

Swift 可选绑定(bind)只允许常量

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

Swift 带有一个“可选绑定(bind)”机制,允许在可能的情况下自动解包可选值。刚开始学这个的时候觉得还行,后来发现可选绑定(bind)机制只能把解包后的值绑定(bind)到常量上。

如果我想修改展开的值,我必须先将它分配给一个变量..

if let regions:[String] = regionList {
regions.removeLast() //Error!
}

有没有更好的方法来解决这个问题?

我希望 Apple 可以提供另一种可选的绑定(bind)语法,例如:

if var regions:[String] = regionList {
...
}

最佳答案

存在 if var 技术,但值只能在 if var 范围内可变,而且无论如何它都是一个副本,因为数组是值类型。

var regionList:[String]? = ["a", "b"]

if var regions = regionList {
regions.removeLast()
regions // ["a"]
}

regionList // ["a", "b"]

要改变您的 Optional 数组,您可以使用可选链:

var regionList:[String]? = ["a", "b"]

regionList?.removeLast()

regionList // ["a"]

这里的想法是 .removeLast() 只会在 regionList? 不是 nil 时执行。

关于Swift 可选绑定(bind)只允许常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262222/

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