【发布时间】:2020-01-12 19:28:02
【问题描述】:
我编写了一个 Complex 泛型类来表示一个复数,并希望能够将内部数字存储为用户传入的类型。还有一个 add_complex() 函数来添加两个复数。
class Complex<T: Number>(val real:T, val imagine:T)
fun<T:Number> add_complex(l:Complex<T>, r:Complex<T>): Complex<T>
{
return Complex(l.real+r.real, l.imagine+r.imagine)
}
fun main()
{
var x=Complex<Int>(2,3)
var y=Complex<Int>(4,5)
var sum=add_complex(x,y)
print("${sum.real},${sum.imagine}i")
}
编译器给出了一长串关于plus 函数可能匹配的错误消息。但我不知道问题出在哪里,并且 kotlin 参考并没有提供太多关于泛型函数的信息。而且我来自C++,对C++模板有一个粗略的了解。如果有人能解释 C++ 模板和 kotlin 泛型之间的主要区别,将不胜感激。
【问题讨论】: