【发布时间】:2016-08-06 21:09:10
【问题描述】:
我正在尝试调用 max 函数:max(x: T, y: T)。但是,当我输入 max(2,3) 时,我不断收到以下错误:
错误:不能调用非函数类型的值
Intvar a = max(2, 3)
我是初学者,我从未遇到过使用“T”类型的函数签名。与使用 max 函数相关的 SO 线程以我的方式调用它(如 max(2,3) ),所以我不确定我哪里出错了。
我正在寻找关于“T”以及如何调用支持泛型类型的函数以及如何使max 函数在比较整数 2 和 3 时返回 3 的解释。
【问题讨论】:
-
stackoverflow.com/a/33938397/2757916 显示最小/最大使用量的 SO 答案,例如
max(2,3) -
听起来你定义了一个名为
max的变量,导致与函数max的命名冲突。虽然没有看到你的代码,但也很难说。 -
天啊... wth... 你是绝对正确的。我终于明白错误信息在告诉我什么......
-
@AlexanderMomchliov 嗯...当时,我投票决定将这个问题作为“简单的印刷错误”关闭,因为它缺少 MCVE 和适合实际问题的标题(这个与泛型无关),因此我怀疑它对任何未来的搜索者都有多大用处。但是,如果它不会被关闭,我同意发布答案(并编辑标题)将是最好的做法 - 我已经继续这样做了。
-
@Hamish 确实是这样,但老实说,这似乎是一个相当普遍的错误。
min和max是常见的变量名。我可以想象这会发生在其他人身上。