我正在尝试创建一个通用的函数,可以接受可选参数。
以下是我的代码:
func somethingGeneric<T>(input: T?) {
if (input != nil) {
print(input!);
}
}
somethingGeneric("Hello, World!") // Hello, World!
somethingGeneric(nil) // Errors!
它可以使用如下的String
,但不能使用nil
。
使用nil
会导致以下两个错误:
error: cannot invoke 'somethingGeneric' with an argument list of type '(_?)'
note: expected an argument list of type '(T?)'
我做错了什么,应该如何正确声明/使用这个函数?另外,我希望保持函数的使用尽可能简单(我不想做像
nil as String?
这样的事情)。
nil as String?
这个操作基本上也是这样实现的。 - Will M.func somethingGenericWithNil()
,并调用它 :) - Mike Pollard