从Swift中的函数返回任何类型

时间:2016-11-21 16:47:23

标签: swift function generics swift3 return-type

我正在尝试创建一个可以返回任何类型的函数。我 希望它返回Any类型的对象,但返回其他类型的对象,即StringBool,{ {1}}等等。你明白了。

您可以使用泛型以这种方式轻松完成此操作:

Int

但是可以不传递任何相同类型的参数吗?这就是我的想法:

func example<T>(_ arg: T) -> T {
    // Stuff here
}

当我尝试这样做时,一切正常,直到我调用该函数,然后我收到此错误:

func example<T>() -> T {
    // Stuff here
}

1 个答案:

答案 0 :(得分:4)

  

是否可以在不传递任何相同类型的参数的情况下执行此操作?

答案是肯定的,但是编译器需要有一种方法来推断通用函数的正确版本。如果它知道将结果分配给它,它将起作用。例如,您可以明确键入data.framelet声明。以下是在Swift 3的操场上工作。

var