Rust,编写一个泛型函数来定义自己的类型

问题描述 投票:0回答:1

如果我想要一个泛型函数返回一个泛型结构,其类型是基于某个参数定义的,我该如何实现?
我尝试如下:

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
限制通用值,但没有任何效果,我总是回到这种错误。
我该如何解决这个问题?

function generics rust parameters traits
1个回答
0
投票

你不能。此调用的结果类型是什么?

let o = A::new(random_bool());
© www.soinside.com 2019 - 2024. All rights reserved.