首页 文章
  • 0 votes
     answers
     views

    Scala特征:无法通过传递子元素中的值来获取抽象父特征值

    这个例子是我试图解决的更大问题的模型 . 顶部的层次结构是抽象特征CarFamily,然后从CarFamily延伸出3个抽象特征,即本田,思域和沃尔沃 . 我的目标是能够在从这3个特征扩展的实例中为每个子特征调用carModelStatement . 但是,正如您可以看到结果一样,这些语句都返回“汽车模型为空” . 所以val volvo,honda,civic没有传到我对Scala的新手 . 想...
  • 1 votes
     answers
     views

    在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 votes
     answers
     views

    为什么不读取:: read_to_string()返回字符串?

    在Read trait中,许多函数/方法将 buf: &mut XXX 作为(其中一个)参数并返回 Result<usize> . 例如,read_to_string()将 buf: &mut String 作为参数之一并返回 Result<usize> . 当我来自多种语言时,所谓的现代语言通常会返回字符串以进行 read_string() 函数调用 ...
  • 1 votes
     answers
     views

    Rust trait对象的&self不能用于特征默认函数

    试图覆盖特征演员问题,描述here . 坚持实现trait函数,该函数返回带有自己实现的枚举实例: //the "trait matcher" enum enum Side<'a> { Good(&'a GoodDude), Bad(&'a BadDude), } //very general trait trait Dude { ...
  • 3 votes
     answers
     views

    特征对象,并将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 votes
     answers
     views

    借用Box <Trait>内容如何工作?

    我有this minimal example code: use std::borrow::BorrowMut; trait Foo {} struct Bar; impl Foo for Bar {} fn main() { let mut encryptor: Box&lt;Foo&gt; = Box::new(Bar); encrypt(encryptor.borrow...
  • 3 votes
     answers
     views

    了解特征和对象安全

    我正在努力解决对象安全的基础问题 . 如果我有这个代码 struct S { x: i32 } trait Trait: Sized { fn f(&amp;self) -&gt; i32 where Self: Sized; } fn object_safety_dynamic(x: Trait) {} 我收到 fn object_safety_dynamic(x: Tra...
  • 9 votes
     answers
     views

    特征不能成为一个对象

    我有以下代码: extern crate futures; // 0.1.24 use futures::Future; use std::io; struct Context; pub trait MyTrait { fn receive(context: Context) -&gt; Future&lt;Item = (), Error = io::Error&gt;; } p...
  • 3 votes
     answers
     views

    用返回通用特征的方法实现特征

    我试图设计一对特征(例如来自线性代数的 RowVector 和 ColumnVector ),其中每个特征从其中一个方法返回另一个特征(例如 transpose ) . 我希望将来能够添加任何特征的实现(例如密集和稀疏矢量实现) . #[macro_use] extern crate derive_new; trait RowVector&lt;Element&gt; { fn tran...
  • 1 votes
     answers
     views

    用于从字符串创建案例对象的scala“factory”设计模式

    我是scala的新手,正在寻找“scala”方法来创建一个外部源从stringed枚举中获取的正确的case类(特征符合) . 由于源是外部的,因此应该验证输入是否正确,并且给定有效输入将返回正确的案例类 . 我认为这是一个“工厂”,返回给定特征的可选案例类 例: trait ProcessingMechanism case object PMv1 extends ProcessingMechan...
  • 0 votes
     answers
     views

    具有自己的'Traits'实现的CGAL 3D Convex Hull包含内部点

    我的目标是用CGAL计算一组3D点的静态凸壳 . 我在the proper CGAL documentation page阅读了这篇文章,并实现了第一个算法,在这个算法中,我从之前转换为 Kernel::Point_3 结构的3D点集中获得了一个 Polyhedron_3 (凸包) . 有用 . 然后我尝试将算法直接应用于原始点,即,不将转换应用于 Kernel::Point_3 结构 . 从上面...
  • 1 votes
     answers
     views

    Scala:trait扩展了java.nio.file.FileVisitor

    我每天都在Scala学习新东西 . 我正在采取的当前路线是从java nio中提取功能并使Scala实现不受其影响 . 我观察过其他Scala专家如何使用java.nio.files包,以及FileVisitor接口以递归方式向下遍历带有子目录和文件的嵌套目录结构 . 但是,我遇到了一个小问题 . 我无法理解 我注意到paulp维护的github上的一个实现,我无法理解 . 我将在这里提出他的代码...
  • 0 votes
     answers
     views

    具有特征的案例类的scala / akka

    我无法在特征中获取案例类来使用Akka序列化 . 以下代码按预期工作: import akka.actor.ActorSystem import akka.serialization.SerializationExtension /*trait TestProtocol {*/ sealed abstract class Expr /* extends Serializable */ f...
  • 0 votes
     answers
     views

    Scala:Object在运行时继承

    我在Scala中有以下代码: trait Component { def state : String def name: String } case class AComponent( id : String) extends Component { def state = name + &quot;:&quot; + id def name = &quot;A&...
  • 1 votes
     answers
     views

    如何获取从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 votes
     answers
     views

    Scala - 覆盖特征中的类方法

    我是Scala的新手(来自Ruby世界) . 而且我对Scala中的“traits”概念感到好奇(如果我理解正确的话,它应该〜类似于ruby中的模块) . 这是一个用例 . 假设我有一个名为 User 的类,定义如下: class User { def password() : String = &quot;generating a password (default)&quot; } ...
  • 1 votes
     answers
     views

    引用Trait中的父类

    我有一个扩展Trait的类,我想编写可以与类混合的Traits并覆盖一些方法 . 我 class 延伸的特征看起来像这样 trait CharSource { def source: Iterator[Char] def words: Iterator[String] = { while(source.hasNext){ //Logic ...
  • 4 votes
     answers
     views

    Mixin包装Scala特征的每个方法

    假设我有几种方法的特征 Foo . 我想创建一个新的特性,扩展 Foo 但每个方法调用&quot;wraps&quot;,例如使用一些print语句(实际上这将是更复杂的东西/我有几个不同的用例) . trait Foo { def bar(x: Int) = 2 * x def baz(y: Int) = 3 * y } 我可以通过覆盖每个方法手动完成此操作 . 但这似乎不必要地冗长...
  • 0 votes
     answers
     views

    如何将构造时代码混合到Scala中具有特征的类中?

    我希望所有扩展特征的类都存储他们的创建时间(作为 org.joda.time.DateTime 实例) . 该特征将 def dt : DateTime 定义为吸气剂 . 我是否还可以定义代码以获取特征中的时间戳(打算在构建时运行)? 更新:我想我已经想到如何在不处理构造函数的情况下实现特定任务(只需将 dt 定义为val并将其设置为新的DateTime,也许这会起作用),但 Headers 中的...
  • 4 votes
     answers
     views

    如何在Scala中使用参数化特征的反射?

    对于Scala中的特性来说,Manifest上的访问似乎很棘手 . 这段代码怎么能在scala中编译? trait SomeTraitOf[+A] { def newInstanceOfA : A = /* necessary code to make it work */ } (相关,它作为参数化类可以正常工作: class SomeTraitOf[A : Manifest] { ...
  • 0 votes
     answers
     views

    Scala trait作为方法输入 - 类型不匹配错误

    我写了一个获取特征类型作为输入的方法 . 这是特质 Localizable : import com.vividsolutions.jts.geom.Coordinate trait Localizable { val location : Coordinate } 这是方法: def localizeWithId(rdd : RDD[Localizable]) : RDD[(BigInt...
  • 3 votes
     answers
     views

    在scala中声明父特征中的子特征的自我类型

    我有一些具有相同自我类型的scala特征,如下所示 . trait BookDbModule { self: DbConfig =&gt; // Abstract this to a parent trait /* ... */ } trait AuthorDbModule { self: DbConfig =&gt; // Abstract this to a parent tra...
  • 0 votes
     answers
     views

    Scala类型参数作为内射映射

    有一些类型 T 和抽象类 X[T] ,重点是,对于每个具体类型T,如果定义,只有 X[T] 的一个子类,例如 IntX extends X[Int] ,这是 X[T] 与 T = Int 的唯一子类 . 也就是说,理论上我们对某些类型的集合有一个内射映射 T -&gt; X[T] . 我们来看看两个简单的定义: trait Context[T] { type XType &lt;: X[...
  • 73 votes
     answers
     views

    何时在Scala特征中使用val或def?

    我正在浏览effective scala slides并且它在幻灯片10中提到永远不要在 trait 中使用 val 来抽象成员并使用 def 代替 . 幻灯片没有详细提及为什么在 trait 中使用抽象 val 是反模式 . 如果有人可以解释在抽象方法的特性中使用val vs def的最佳实践,我将不胜感激
  • 3 votes
     answers
     views

    从具有生命周期的结构切换到特征

    我试图做一个特性来呈现作为迭代器和字符串的东西 . 如果我在get_iterator结果中使用struct std :: slice :: Iter,那么每次都可以 . pub trait Value { fn get_iterator(&amp;self) -&gt; Box&lt;std::slice::Iter&lt;String&gt;&gt;; } struct StringL...
  • 4 votes
     answers
     views

    为什么不给出编译错误?

    我有下面的代码 object SubClass extends MyTrait { private[this] val a = 10 def main(args: Array[String]) { println(a) } } trait MyTrait { protected val a = 5 } 它会产生以下运行时错误 . 有人可以解释为什么我们没有在编...
  • 9 votes
     answers
     views

    感叹号在特质实施中意味着什么?

    我在库中找到了参考std::rc::Rc这个trait implementation impl&lt;T&gt; !Send for Rc&lt;T&gt; where T: ?Sized, What does the exclamation point in front of Send mean? 我查阅了The Rust Programming Language¹书和The Rus...
  • 5 votes
     answers
     views

    案例类扩展特征不适用于副本

    我试试 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 votes
     answers
     views

    当特征和类型都不在此包中时提供实现[重复]

    这个问题在这里已有答案: 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(&amp;self) -&gt; String { se...
  • 7 votes
     answers
     views

    为什么我得到一个`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...

热门问题