如果我想要一个泛型函数返回一个泛型结构,其类型是基于某个参数定义的,我该如何实现?
我尝试如下:
struct A<T>{
val: T
}
impl<T> A<T>{
fn new(isInt: bool) -> Self{
if isInt{
A{
val: 1
}
}else {
A{
val: 0.1
}
}
}
}
但是返回给我以下错误:
expected type parameter T found type {integer}
或 expected type parameter T found type {float}
。From
限制通用值,但没有任何效果,我总是回到这种错误。你不能。此调用的结果类型是什么?
let o = A::new(random_bool());