首页 > 解决方案 > 如何让元组符合序列?

问题描述

我在 Swift 5 中有以下代码:

func iceCreamFlavors() -> (String, String, String) {
    return ("Chocolate", "42", "Vanilla")
}

for index in iceCreamFlavors(){
    print(index)
}

我只是试图迭代返回的元组中的元素。但是,我收到以下错误:error: for-in loop requires '(String, String, String)' to conform to 'Sequence'

如何让元组符合序列?我需要扩展 Sequence 协议吗?如果是这样,我应该怎么做?

标签: swiftfor-looptuplesprotocols

解决方案


在您的示例函数中,您将返回 3 个元素,并且没有其他选项是可能的。如果您想要不同的数字,请使用 [String] 作为结果,即

func iceCreamFlavors() -> [String] {
    ["Chocolate", "42", "Vanilla"]
}

返回一个数组将允许您迭代它的元素:

let flavors = iceCreamFlavors()
print(flavors.count)
for flavor in flavors {
    print(flavor)
}

推荐阅读