我有一个类,我想动态接受什么类型,但仍然是浮点类型。我在下面添加了一个示例类。简而言之,我想要一个可以包含Ints或Floats(或摘要(Float))的类,但是类型参数不喜欢被分配一些实际上符合它的东西。将默认值分配给T:浮点类型参数
class Container<T:Float>
{
public function new(aValue:T = 0.0)
{
}
public function example():T
{
return 16.0;
}
在这个例子中,我得到了两个编译错误。第一个是构造函数new(aValue:T = 0.0
的默认值。一个简单的解决方法是将该值设置为动态,但我喜欢我的代码比这更简单。第二个错误是在example()的返回值中。它不会让我返回16.0,因为它不是T实例。
我的问题:这是可行的,如果不是,我应该为每种类型使用不同的类定义?
虽然这种简单的解决方案工作得很好了某些情况下,它不会为不包含'从浮到Float'摘要工作。 如果您可以将值分配给Float类型参数,则可以支持任何类型的支持浮动操作重载的摘要。 当然,如果没有办法给浮点类型参数赋值,那么简单的浮点容器就是最好也是最有效的解决方案。 –
等一下,淋浴帮了忙。我以前的评论不起作用,因为一个抽象不是严格意义上的float,不能用作类型。我真正需要的是某种方式来指定类型中可能的操作符重载,我认为这不可能。然后我会选择你的答案作为正确答案。 –