我正在尝试创建一个可以返回任何类型的函数。我 不 希望它返回Any
类型的对象,但返回其他类型的对象,即String
,Bool
,{ {1}}等等。你明白了。
您可以使用泛型以这种方式轻松完成此操作:
Int
但是可以不传递任何相同类型的参数吗?这就是我的想法:
func example<T>(_ arg: T) -> T {
// Stuff here
}
当我尝试这样做时,一切正常,直到我调用该函数,然后我收到此错误:
func example<T>() -> T {
// Stuff here
}
答案 0 :(得分:4)
是否可以在不传递任何相同类型的参数的情况下执行此操作?
答案是肯定的,但是编译器需要有一种方法来推断通用函数的正确版本。如果它知道将结果分配给它,它将起作用。例如,您可以明确键入data.frame
或let
声明。以下是在Swift 3的操场上工作。
var