相关疑难解决方法(0)

如何在不使用typedef的情况下在切片上显式调用方法?

我想调用为type实现的方法&[i32]。我可以通过标记为1的行中所示的类型别名来做到这一点,但是是否可以不必每次都引入类型别名呢?

trait Foo<T> {
    fn say_hi(x: T);
}

impl<'a> Foo<i32> for &'a [i32] {
    fn say_hi(x: i32) {}
}

type Array<'a> = &'a [i32];

fn main() {
    let arr = [1, 2, 3];
    Array::say_hi(1);//line 1
    &[i32]::say_hi(1);//line 2
}
Run Code Online (Sandbox Code Playgroud)

标记为2的行会产生错误消息:

trait Foo<T> {
    fn say_hi(x: T);
}

impl<'a> Foo<i32> for &'a [i32] {
    fn say_hi(x: i32) {}
}

type Array<'a> = &'a [i32];

fn main() {
    let arr = [1, 2, 3];
    Array::say_hi(1);//line 1
    &[i32]::say_hi(1);//line …
Run Code Online (Sandbox Code Playgroud)

rust

1
推荐指数
1
解决办法
62
查看次数

标签 统计

rust ×1