我正在尝试创建一个可以接受可选参数的通用函数。
这是我到目前为止所拥有的:
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?
).
我猜编译器无法弄清楚什么T
刚刚从nil
.
例如,以下内容就可以正常工作:
somethingGeneric(Optional<String>.None)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)