-
0 votesanswersviews
Scala特征:无法通过传递子元素中的值来获取抽象父特征值
这个例子是我试图解决的更大问题的模型 . 顶部的层次结构是抽象特征CarFamily,然后从CarFamily延伸出3个抽象特征,即本田,思域和沃尔沃 . 我的目标是能够在从这3个特征扩展的实例中为每个子特征调用carModelStatement . 但是,正如您可以看到结果一样,这些语句都返回“汽车模型为空” . 所以val volvo,honda,civic没有传到我对Scala的新手 . 想... -
1 votesanswersviews
在Rust中指定或导入Signed特征的推荐方法是什么?
Signed 特质used to exist in the standard library,但它现在已经消失了 . 一年前,someone asked about implementing signed traits on reddit,但线程没有得出结论,并且作者继续再次询问Rust语言话语网站with similar results . 现在num crate中有 Signed 特征,但我有... -
3 votesanswersviews
为什么不读取:: read_to_string()返回字符串?
在Read trait中,许多函数/方法将 buf: &mut XXX 作为(其中一个)参数并返回 Result<usize> . 例如,read_to_string()将 buf: &mut String 作为参数之一并返回 Result<usize> . 当我来自多种语言时,所谓的现代语言通常会返回字符串以进行 read_string() 函数调用 ... -
1 votesanswersviews
Rust trait对象的&self不能用于特征默认函数
试图覆盖特征演员问题,描述here . 坚持实现trait函数,该函数返回带有自己实现的枚举实例: //the "trait matcher" enum enum Side<'a> { Good(&'a GoodDude), Bad(&'a BadDude), } //very general trait trait Dude { ... -
3 votesanswersviews
特征对象,并将n个字节读入矢量
说我有以下, use std::io; use std::io::Read; #[derive(Debug)] enum FooReadError { UnexpectedEof, IoError(io::Error), } impl From<io::Error> for FooReadError { fn from(err: io::Error) -&g... -
12 votesanswersviews
借用Box <Trait>内容如何工作?
我有this minimal example code: use std::borrow::BorrowMut; trait Foo {} struct Bar; impl Foo for Bar {} fn main() { let mut encryptor: Box<Foo> = Box::new(Bar); encrypt(encryptor.borrow... -
3 votesanswersviews
了解特征和对象安全
我正在努力解决对象安全的基础问题 . 如果我有这个代码 struct S { x: i32 } trait Trait: Sized { fn f(&self) -> i32 where Self: Sized; } fn object_safety_dynamic(x: Trait) {} 我收到 fn object_safety_dynamic(x: Tra... -
9 votesanswersviews
特征不能成为一个对象
我有以下代码: extern crate futures; // 0.1.24 use futures::Future; use std::io; struct Context; pub trait MyTrait { fn receive(context: Context) -> Future<Item = (), Error = io::Error>; } p... -
3 votesanswersviews
用返回通用特征的方法实现特征
我试图设计一对特征(例如来自线性代数的 RowVector 和 ColumnVector ),其中每个特征从其中一个方法返回另一个特征(例如 transpose ) . 我希望将来能够添加任何特征的实现(例如密集和稀疏矢量实现) . #[macro_use] extern crate derive_new; trait RowVector<Element> { fn tran... -
1 votesanswersviews
用于从字符串创建案例对象的scala“factory”设计模式
我是scala的新手,正在寻找“scala”方法来创建一个外部源从stringed枚举中获取的正确的case类(特征符合) . 由于源是外部的,因此应该验证输入是否正确,并且给定有效输入将返回正确的案例类 . 我认为这是一个“工厂”,返回给定特征的可选案例类 例: trait ProcessingMechanism case object PMv1 extends ProcessingMechan... -
0 votesanswersviews
具有自己的'Traits'实现的CGAL 3D Convex Hull包含内部点
我的目标是用CGAL计算一组3D点的静态凸壳 . 我在the proper CGAL documentation page阅读了这篇文章,并实现了第一个算法,在这个算法中,我从之前转换为 Kernel::Point_3 结构的3D点集中获得了一个 Polyhedron_3 (凸包) . 有用 . 然后我尝试将算法直接应用于原始点,即,不将转换应用于 Kernel::Point_3 结构 . 从上面... -
1 votesanswersviews
Scala:trait扩展了java.nio.file.FileVisitor
我每天都在Scala学习新东西 . 我正在采取的当前路线是从java nio中提取功能并使Scala实现不受其影响 . 我观察过其他Scala专家如何使用java.nio.files包,以及FileVisitor接口以递归方式向下遍历带有子目录和文件的嵌套目录结构 . 但是,我遇到了一个小问题 . 我无法理解 我注意到paulp维护的github上的一个实现,我无法理解 . 我将在这里提出他的代码... -
0 votesanswersviews
具有特征的案例类的scala / akka
我无法在特征中获取案例类来使用Akka序列化 . 以下代码按预期工作: import akka.actor.ActorSystem import akka.serialization.SerializationExtension /*trait TestProtocol {*/ sealed abstract class Expr /* extends Serializable */ f... -
0 votesanswersviews
Scala:Object在运行时继承
我在Scala中有以下代码: trait Component { def state : String def name: String } case class AComponent( id : String) extends Component { def state = name + ":" + id def name = "A&... -
1 votesanswersviews
如何获取从Groovy特征继承的属性的java.reflect.Field值?
我在Grails Web应用程序中使用Groovy 2.4.3 . 我在其中声明了以下Trait / Class层次结构: trait GuidData { String Guid } class Enrollment implements GuidData { String email } 当我执行以下代码时,我得到了预期的结果: Enrollment enrollment ... -
6 votesanswersviews
Scala - 覆盖特征中的类方法
我是Scala的新手(来自Ruby世界) . 而且我对Scala中的“traits”概念感到好奇(如果我理解正确的话,它应该〜类似于ruby中的模块) . 这是一个用例 . 假设我有一个名为 User 的类,定义如下: class User { def password() : String = "generating a password (default)" } ... -
1 votesanswersviews
引用Trait中的父类
我有一个扩展Trait的类,我想编写可以与类混合的Traits并覆盖一些方法 . 我 class 延伸的特征看起来像这样 trait CharSource { def source: Iterator[Char] def words: Iterator[String] = { while(source.hasNext){ //Logic ... -
4 votesanswersviews
Mixin包装Scala特征的每个方法
假设我有几种方法的特征 Foo . 我想创建一个新的特性,扩展 Foo 但每个方法调用"wraps",例如使用一些print语句(实际上这将是更复杂的东西/我有几个不同的用例) . trait Foo { def bar(x: Int) = 2 * x def baz(y: Int) = 3 * y } 我可以通过覆盖每个方法手动完成此操作 . 但这似乎不必要地冗长... -
0 votesanswersviews
如何将构造时代码混合到Scala中具有特征的类中?
我希望所有扩展特征的类都存储他们的创建时间(作为 org.joda.time.DateTime 实例) . 该特征将 def dt : DateTime 定义为吸气剂 . 我是否还可以定义代码以获取特征中的时间戳(打算在构建时运行)? 更新:我想我已经想到如何在不处理构造函数的情况下实现特定任务(只需将 dt 定义为val并将其设置为新的DateTime,也许这会起作用),但 Headers 中的... -
4 votesanswersviews
如何在Scala中使用参数化特征的反射?
对于Scala中的特性来说,Manifest上的访问似乎很棘手 . 这段代码怎么能在scala中编译? trait SomeTraitOf[+A] { def newInstanceOfA : A = /* necessary code to make it work */ } (相关,它作为参数化类可以正常工作: class SomeTraitOf[A : Manifest] { ... -
0 votesanswersviews
Scala trait作为方法输入 - 类型不匹配错误
我写了一个获取特征类型作为输入的方法 . 这是特质 Localizable : import com.vividsolutions.jts.geom.Coordinate trait Localizable { val location : Coordinate } 这是方法: def localizeWithId(rdd : RDD[Localizable]) : RDD[(BigInt... -
3 votesanswersviews
在scala中声明父特征中的子特征的自我类型
我有一些具有相同自我类型的scala特征,如下所示 . trait BookDbModule { self: DbConfig => // Abstract this to a parent trait /* ... */ } trait AuthorDbModule { self: DbConfig => // Abstract this to a parent tra... -
0 votesanswersviews
Scala类型参数作为内射映射
有一些类型 T 和抽象类 X[T] ,重点是,对于每个具体类型T,如果定义,只有 X[T] 的一个子类,例如 IntX extends X[Int] ,这是 X[T] 与 T = Int 的唯一子类 . 也就是说,理论上我们对某些类型的集合有一个内射映射 T -> X[T] . 我们来看看两个简单的定义: trait Context[T] { type XType <: X[... -
73 votesanswersviews
何时在Scala特征中使用val或def?
我正在浏览effective scala slides并且它在幻灯片10中提到永远不要在 trait 中使用 val 来抽象成员并使用 def 代替 . 幻灯片没有详细提及为什么在 trait 中使用抽象 val 是反模式 . 如果有人可以解释在抽象方法的特性中使用val vs def的最佳实践,我将不胜感激 -
3 votesanswersviews
从具有生命周期的结构切换到特征
我试图做一个特性来呈现作为迭代器和字符串的东西 . 如果我在get_iterator结果中使用struct std :: slice :: Iter,那么每次都可以 . pub trait Value { fn get_iterator(&self) -> Box<std::slice::Iter<String>>; } struct StringL... -
4 votesanswersviews
为什么不给出编译错误?
我有下面的代码 object SubClass extends MyTrait { private[this] val a = 10 def main(args: Array[String]) { println(a) } } trait MyTrait { protected val a = 5 } 它会产生以下运行时错误 . 有人可以解释为什么我们没有在编... -
9 votesanswersviews
感叹号在特质实施中意味着什么?
我在库中找到了参考std::rc::Rc这个trait implementation impl<T> !Send for Rc<T> where T: ?Sized, What does the exclamation point in front of Send mean? 我查阅了The Rust Programming Language¹书和The Rus... -
5 votesanswersviews
案例类扩展特征不适用于副本
我试试 trait Foo[A] { def copy(int: Int): A } case class Bar(int: Int) extends Foo[Bar] 但我明白了 错误:类Bar需要是抽象的,因为类型为(int:Int)的trait Foo中的方法复制this.Bar未定义 由于 Bar 是一个案例类,它会自动定义具有此签名的 copy 方法 . 为什么 Foo 类不... -
6 votesanswersviews
当特征和类型都不在此包中时提供实现[重复]
这个问题在这里已有答案: How do I implement a trait I don't own for a type I don't own? 2个答案 我想为原始类型 u8 提供特征 ToHex (我没有定义,从 serialize )的实现: impl ToHex for u8 { fn to_hex(&self) -> String { se... -
7 votesanswersviews
为什么我得到一个`trait bound` [T]:当我尝试在unsized类型上手动实现Ord和Eq时,不满足std :: marker :: Sized`?
在创建存储DST(例如,原始切片)的结构时,我可以使用普通的 #[derive(Eq, PartialEq, Ord, PartialOrd)] 工具来获取我的类型上此特征的实现: #[derive(PartialEq, Eq, PartialOrd, Ord)] struct A([u8]); 但是,如果我手动实现它们,那么编译器会抱怨我的类型没有实现 Sized : struct A([u8...