作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个具有通用参数的函数,但在实例化该函数时遇到错误。
class Util {
@:generic
public static inline function max<T>( a:T, b:T ) : T {
return a > b ? a : b;
}
}
调用max
而不设置类型:
var mean:Float = 0;
mean = Util.max( 0.01, mean );
我收到错误:
Cannot compare max.T and max.T
Missing return max.T
如果我设置 Float 类型:
var mean:Float = 0;
mean = Util.max<Float>( 0.01, mean );
我收到错误:
Unexpected ,
我做错了什么?
最佳答案
类型T
可能没有>
运算符。也许您可以使用类型约束,例如:
class Util {
@:generic
public static inline function max<T:Float>(a:T, b:T):T {
return a > b ? a : b;
}
}
然后这样的用法应该有效:
var intMax:Int = Util.max(1, 10);
var floatMax:Float = Util.max(1.0, 10.0);
关于generics - 泛型函数 Haxe 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663246/
我是一名优秀的程序员,十分优秀!