带Void的Swift泛型类型无法在不带参数的情况下调用方法

时间:2018-02-07 16:18:56

标签: swift generics

假设我有类似class Foo <T>的通用类型,其方法类似于func bar (_ arg: T)

如果我let foo = Foo<Void>(),我不能在没有获得foo.bar()的情况下执行:

Cannot invoke 'bar' with no arguments

这不适用于旧版本的Swift吗?或者我做错了什么?

foo.bar(())有效,但显然不太理想。

1 个答案:

答案 0 :(得分:0)

您可以将参数定义为可选参数,并将nil定义为默认值以实现此目的:

func bar (_ arg: T? = nil)