Swift 使用接受类型参数的内部函数类型时出错

Swift 使用接受类型参数的内部函数类型时出错,swift,generics,typeof,Swift,Generics,Typeof,为什么在一个简单函数中使用type(of:)时没有问题。但一旦函数更改为接受泛型参数T,类型(of:)就会破坏它自己?即使函数签名中没有影响它的内容 函数2签名中的什么使类型(of:)失败 当你说type时,斯威夫特认为你指的是函数的参数type,但实际上你指的是 您可以指定类型(of:)函数的模块名称(Swift),以区分: Swift.type(of: controller) 或者将参数重命名为其他名称: public func function2<T>(t: T.Type,

为什么在一个简单函数中使用type(of:)时没有问题。但一旦函数更改为接受泛型参数T,类型(of:)就会破坏它自己?即使函数签名中没有影响它的内容

函数2签名中的什么使类型(of:)失败


当你说
type
时,斯威夫特认为你指的是函数的参数
type
,但实际上你指的是

您可以指定
类型(of:)
函数的模块名称(
Swift
),以区分:

Swift.type(of: controller)
或者将参数重命名为其他名称:

public func function2<T>(t: T.Type, controller: UIViewController) -> Any
                         ^
public func function2(t:t.Type,controller:UIViewController)->任意
^

是否可能混淆了函数
类型(of:)
和包含函数内的参数
类型
。这将是令人失望的,因为我花了一个小时在这个问题上。我认为问题是第二个函数中的泛型参数名称。您将其称为“type”,当您使用type(of:…)时,编译器尝试使用该参数,而不是普通的type(of:)函数。是的,这就是确切的原因。也总是将代码作为文本而不是文本发布image@JoakimDanielson我也想显示错误:)。当然可以