什么是Swift"无法调用闭包"错误的根本原因?

Pau*_*ald 5 swift

以下代码(为简洁而剥离):

private lazy var googleViewController = {
    return GoogleSignInViewController()
}()

private lazy var timerViewController = {
    return TimerViewController()
}()
Run Code Online (Sandbox Code Playgroud)

产生此错误:

MainViewController.swift:26:6:无法使用类型'()'的参数列表调用类型'() - > UIViewController'的闭包

显式键入我的一个视图控制器可以解决问题:

private lazy var timerViewController: TimerViewController = {
    return TimerViewController()
}()
Run Code Online (Sandbox Code Playgroud)

但是,我还不了解错误的根本原因以及为什么这会解决问题.我假设它与类型推断有关,但不确定细节.我的代码发生了什么?

我意识到我不需要在上面的代码中使用闭包,它意味着是说明性的代码