首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在Rust中使用泛型类型别名作为函数的泛型类型

有没有办法在Rust中使用泛型类型别名作为函数的泛型类型
EN

Stack Overflow用户
提问于 2020-01-04 06:46:47
回答 1查看 366关注 0票数 2

我希望能够重用泛型类型别名作为Rust中一些函数的泛型类型参数。

我尝试按照type alias rust docs中指定的语法创建以下类型别名

代码语言:javascript
运行
复制
type DebuggableFromStr<T: FromStr>
where
    <T as std::str::FromStr>::Err: std::fmt::Debug,
= T;

并希望使用它来替换以下函数中的泛型类型定义:

代码语言:javascript
运行
复制
fn split_string_to_vec<T: FromStr>(s: String) -> Vec<T>
where
    <T as std::str::FromStr>::Err: std::fmt::Debug,
{
    s.split_whitespace()
        .map(|s| s.parse().unwrap())
        .collect::<Vec<T>>()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-04 07:56:11

不,因为Rust没有强制类型别名的类型界限。您的示例等同于:

代码语言:javascript
运行
复制
type DebuggableFromStr<T> = T;

Playground

我不相信它在任何地方都有专门的文档,但是如果你尝试的话,编译器会发出一个警告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59586238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档