51得票3回答
与其他特质方法的冲突

我该如何处理具有相同名称的特征和方法?trait FooTrait { public function fooMethod() { return 'foo method'; } public function getRow() { return '...

51得票2回答
何时以及为什么要使用 AsRef<T> 而不是 &T

AsRef文档写道: 用于进行一种廉价的引用到引用转换。 我理解reference-to-reference,但是“cheap”是什么意思呢?希望它与复杂性理论(big Oh等)中的“cheapness”无关。 示例:struct User { email: String, ag...

50得票7回答
Scala中的线性化顺序

当使用特质(traits)时,我很难理解Scala中的线性化顺序(linearization order):class A { def foo() = "A" } trait B extends A { override def foo() = "B" + super.foo() }...

49得票3回答
特性无法转换为对象

我有如下代码:extern crate futures; // 0.1.24 use futures::Future; use std::io; struct Context; pub trait MyTrait { fn receive(context: Context) -&...

48得票5回答
如何将一个 trait 混入到实例中?

给定一个特质 MyTrait:trait MyTrait { def doSomething = println("boo") } 它可以与extends或with一同混合到类中:class MyClass extends MyTrait 在创建新实例时,也可以混合使用:var o = n...

47得票2回答
使用Scala构造函数设置在特质中定义的变量

如果我理解正确的话,traits 是最接近 Java 接口的东西,类构造函数自动设置变量。 但是如果我有一个继承了 trait 的类,并且有一个构造函数,该构造函数从 trait 中设置一个变量,像这样:trait Foo { var foo: String } class Bar...

45得票3回答
能否从trait中访问struct字段?

特质(Traits)用于将一些函数从结构体中分组实现,但是否可以从特质中访问结构体字段? 我可以想象在特质中声明字段,以便将字段也抽象化。我没有找到这样的语法;是否有其他解决方案?否则,无法使用特质具有非静态方法,对吗? 我熟悉C#的面向对象编程,并正在尝试适应Rust中我已经熟悉的C# ...

45得票3回答
如何创建一个可以适用于多种整数类型的is_prime函数?

我刚开始学习Rust,并想创建一些通用的基本数学函数。我有以下is_prime函数:fn is_prime(n: i64) -&gt; bool { if n == 2 || n == 3 { return true; } else if n % 2 == 0 ...

44得票4回答
如何从一个方法中返回一个 trait 的实例?

我正在尝试创建一个函数,该函数返回实现Shader特质的实例。以下是我的大幅简化的代码: trait Shader {} struct MyShader; impl Shader for MyShader {} struct GraphicsContext; impl Graphics...

44得票2回答
如何从 Vec 或 Slice 中读取 (std::io::Read)?

Vec支持std::io::Write,因此可以编写接受File或Vec的代码,例如。从API参考中可以看出,似乎Vec和切片都不支持std::io::Read。 有没有方便的方法来完成这个操作?是否需要编写包装器结构体? 下面是一个可行的代码示例,它读取和写入文件,其中注释了一行应该读取...