尝试调用max(_:_ :)函数时,"无法调用非函数类型的值"错误

Gov*_*Rai 6 generics swift

我正在尝试调用max函数:max(x: T, y: T).但是,当我输入时,我不断收到以下错误max(2,3):

错误:无法调用非函数类型的值Int var a = max(2,3)

我是初学者,我从未遇到过使用类型" T" 的函数签名.与使用max函数相关的SO线程以我(我喜欢max(2,3))的方式调用它,所以我不确定我哪里出错了.

我正在寻找关于" T" 的解释以及如何调用支持泛型类型的max函数以及如何在比较整数2和3时使函数返回3.

Ham*_*ish 8

问题(正如您在评论中所证实的)是您定义了一个名为的变量max,导致与该函数的命名冲突max(_:_:).

因此,解决方案是指定Swift模块命名空间(如George建议的那样),以消除您引用该max(_:_:)函数的事实:

Swift.max(2, 3)
Run Code Online (Sandbox Code Playgroud)

或者,最好,您应该考虑重命名变量.我强烈怀疑你可以给它一个更具描述性的名称(请记住,Swift API设计指南有利于清晰而简洁).