Swift 表示任何元组的类型?

Swift 表示任何元组的类型?,swift,types,Swift,Types,似乎tuple不能转换为“Any”类型。你知道表示元组的类型吗 func myFunc(x: Any) { } myFunc( [12, 34, 56] ) // OK myFunc( (78, 90, "Hello") ) // error: '((Int, Int, String)) -> ()' is not convertible to '(Any) -> ()' 似乎您必须显式地强制转换它,但它可以工作: func myFunc(x: Any) { } myFunc(

似乎tuple不能转换为“Any”类型。你知道表示元组的类型吗

func myFunc(x: Any) {
}

myFunc( [12, 34, 56] ) // OK
myFunc( (78, 90, "Hello") ) // error: '((Int, Int, String)) -> ()' is not convertible to '(Any) -> ()'

似乎您必须显式地强制转换它,但它可以工作:

func myFunc(x: Any) {
}

myFunc( (78, 90, "Hello") as Any)

我认为这是必要的,因为将元组传递给函数的更常见的情况是将元组分解为函数的单独参数(而不是参数本身)。

如果您可以这样做,我建议改用泛型函数:

func myFunc<T>(x: T) {
}

myFunc( [12, 34, 56] ) // OK
myFunc( (78, 90, "Hello") ) // Fine too
func-myFunc(x:T){
}
myFunc([12,34,56])//好的
myFunc((78,90,“你好”)//也很好
但是如果不知道您在函数中具体做了什么,就很难判断。

我看到了(谢谢)。然后我用他们的方式写了这封信

func myFunc(@autoclosure a: () -> Any) {
    let x = a()
}

myFunc( [12, 34, 56] ) // OK
myFunc( (78, 90, "Hello") ) // OK, too