当前位置:  开发笔记 > 后端 > 正文

解析数字的通用函数失败,"FromStr未实现"

如何解决《解析数字的通用函数失败,"FromStr未实现"》经验,为你挑选了1个好方法。

我的Rust代码中有这个泛型函数:

fn test(text: &str) -> T {
    text.parse::()
}

这个想法是调用者会做的事情

test::("2313");

但编译失败了这条消息

error: the trait `core::str::FromStr` is not implemented for the type `T` [E0277]

我昨天刚开始学习Rust,所以这可能是一个非常基本的问题,我找不到答案.



1> ljedrz..:

像错误消息状态一样,T需要实现core::str::FromStr才能适用于该parse功能.类型签名parse是:

fn parse(&self) -> Result where F: FromStr

这限制了您可以用于实现的那种F(或者,在您的情况下T)FromStr.你的另一个问题是返回的类型test; 它应该与parse- a 之一相同Result.

当您解决这些问题时,您的功能将起作用:

use std::str::FromStr;

fn test(text: &str) -> Result {
    text.parse::()
}

fn main() {
    println!("{:?}", test::("2313"));
}

好了(2313)

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有