gpt4 book ai didi

协议(protocol)中的 Swift 元组声明

转载 作者:行者123 更新时间:2023-11-28 10:33:08 26 4
gpt4 key购买 nike

我的代码中有一个元组变量,它来自 ReactiveSwift:

class MyClass {
var (signal, signalSender) = Signal<Bool, Error>.pipe()
}

如何在协议(protocol)中声明变量元组?

类似这样(不起作用):

protocol MyProtocol {
var (signal, signalSender): Signal<Bool, Error> { get set }
}

出现语法错误:“Getter/setter can only be defined for a single variable”

谢谢!

最佳答案

您的属性类型应该是元组,而不仅仅是某些类/结构的声明。所以,看看您的 pipe() 返回了什么。它应该返回两种类型的元组

func pipe() -> (Type1, Type2) { ... }

协议(protocol)声明使用这两种类型

protocol MyProtocol {
var tuple: (signal: Type1, signalSender: Type2) { get set }
}

然后将此协议(protocol)实现到您的类中,并为其分配 pipe() 的返回值

class MyClass: MyProtocol {
var tuple: (signal: Type1, signalSender: Type2) = Signal<Bool, Error>.pipe()
}

然后当你需要获取元组的元素时,只需使用

tuple.signal
tuple.signalSender

关于协议(protocol)中的 Swift 元组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55046077/

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