我正在尝试调用max函数:max(x: T, y: T)
。但是,当我输入max(2,3)
时,我一直收到以下错误:
错误:无法调用非函数类型
Int
的值 var a = max(2,3)
我是初学者,我从未遇到过使用类型“T
”的函数签名。与使用max函数相关的SO线程以我的方式调用它(如max(2,3)
)所以我不确定我哪里出错了。
我正在寻找关于“T
”的解释以及如何调用支持泛型类型的函数以及如何在比较整数2和3时使max
函数返回3。
答案 0 :(得分:8)
问题(如you've confirmed in the comments)是您定义了一个名为max
的变量,导致与函数max(_:_:)
发生命名冲突。
因此,解决方案是指定Swift
模块名称空间(作为George suggested),以消除您引用max(_:_:)
函数的事实:
Swift.max(2, 3)
或者,您最好考虑重命名变量。我强烈怀疑你能给它一个更具描述性的名字(记住,the Swift API Design Guidelines有利于清晰而简洁)。
答案 1 :(得分:2)
您是否在扩展程序Int中调用max?
尝试Swift.max(2,3)。