Rust:在“use ... as”导入期间指定模板参数

3
我想指定一个导入类的模板参数,这样我每次使用它时就不需要再指定。就像这样:
use self::binary_heap_plus::BinaryHeap<T,MinComparator> as BinaryMinHeap<T>;

这个可以吗?

1个回答

3

这是可能的吗?

是的,可以像以下方式实现:

pub type CustomResult<T> = Result<T, MyError>;

#[derive(Debug)]
pub enum MyError {
    MyError1,
}

fn result_returner(prm: i32) -> CustomResult<i32> {
    if prm == 1 {
        Ok(5)
    } else {
        Err(MyError::MyError1)
    }
}

同时,您也可以在导入时更改类型名称,例如:

use std::collections::HashMap as CustomNamedMap;

fn main() {
    let mut my_map = CustomNamedMap::new();
    my_map.insert(1, 2);

    println!("Value: {:?}", my_map[&1]);
}

Playground


谢谢,我最终选择的代码是type BinaryMinHeap<T> = binary_heap_plus::BinaryHeap<T, binary_heap_plus::MinComparator>;。我想答案是typeuse更加强大。 - Henning Koehler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接