gpt4 book ai didi

swift - 自定义运算符错误 - 无法传递不可变值

转载 作者:行者123 更新时间:2023-11-30 11:59:27 25 4
gpt4 key购买 nike

我做错了什么?我试图了解自定义运算符如何在 swift 中工作。

enum MyEnum: String {
case String = "String"

static func << (lhs: inout String?, rhs: MyEnum) {
lhs = rhs.rawValue
}
}

class MyClass {

var value: String?

}

let myClass: MyClass? = MyClass()

myClass!.value << MyEnum.String

myClass!.value // "String"

myClass?.value << MyEnum.String // error: cannot pass immutable value of type 'String?' as inout argument

我怎样才能让它发挥作用?

最佳答案

这与您的自定义运算符无关,这很好(尽管,为什么不直接使用赋值呢?)

inout值必须是可变的。表达式的类型myClass?.value是不可变的 Optional<String> 。这是因为可选链,与 myClass!.value 不同。哪个力打开myClass然后申请成员(member)访问权限。

关于swift - 自定义运算符错误 - 无法传递不可变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47437898/

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