微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Swift中,我可以在元组中使用函数类型吗?

我想使用包含函数类型的元组数组.例如:

(Int,Bool,() -> () )

然后我创建了数组:

var someList = [(Int,() -> () )]()

但在编译时,此声明中有2个错误

>预期’,’分隔符
>表达式列表中的预期表达式

那么可以在元组上使用函数类型还是我错过了什么?

@R_404_5620@

你可以这样做:

typealias TupleType = (Int,() -> Void)
var list = [TupleType]()

不幸的是,尝试从数组中访问元组中的项目
导致游乐场破裂 – “与游乐场服务的沟通意外中断”.在项目中尝试相同的操作会导致分段错误.如果您遇到同样的问题,我建议您改用结构:

struct MyStruct {
    let num: Int
    let bool: Bool
    let closure: () -> Void

    init(num: Int,bool: Bool,closure: () -> Void = {}) {
        self.num = num
        self.bool = bool
        self.closure = closure
    }
}

var list = [MyStruct]()
list.append(MyStruct(num: 1,bool: true,closure: { println("Hello") }))
list.append(MyStruct(num: 2,bool: false))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐