首页 文章
  • 5 votes
     answers
     views

    如何从scala案例类中装饰不可变对象图

    我正在阅读结构化JSON,使用Play Frameworks的JSON Reads来构建带有案例类的对象图 . 一个例子: case class Foo ( id: Int, bar_id: Int, baz_id: Int, ...
  • 12 votes
     answers
     views

    在所有情况下都不强制键入别名参数边界

    TL; DR:似乎类型别名的类型参数(例如 type T[X<:Serializable] )在被引用为变量,参数和其他情况时不会强制执行它们的约束 . 但是,案例类会为其参数正确实施边界 . 考虑设计用于表示泛型类型子集的类型别名 . 例如,让我们说我想要一个 Serializable 列表的类型: scala> type SerializableList[T <: Seria...
  • 219 votes
     answers
     views

    案例对象与Scala中的枚举

    是否有关于何时使用case classes(或案例对象)与在Scala中扩展枚举的最佳实践指南? 他们似乎提供了一些相同的好处 .
  • 4 votes
     answers
     views

    通常重写Scala案例类

    是否可以一般性地替换案例类中的参数?更具体地说,我想要一个替代函数,它接收一个“查找”案例类和一个“替换”案例类(如语法规则的左侧和右侧)以及一个目标案例类,该函数将返回一个将case case类的参数替换为replace case类的新case类?该函数还可以简单地将case类(Product?)和一个函数应用于case类的所有参数/产品 . 显然,给定一个特定的case类,我可以使用unapp...
  • 2 votes
     answers
     views

    Scala案例类this()

    我在我的scala项目中使用了几个case类(scala 2.10) . 我也在使用jacoco代码覆盖工具2.1.2版 . 当jacoco看一个简单的案例类时,例如 case class TestClass( val x : Int ) { def double() : Int = x * 2 } 它报告一个名为this()的自动生成对象的方法,该方法不带参数 . 显然,我的课只有一个...
  • 2 votes
     answers
     views

    案例类中的Scala Option类型

    我有一个案例类,它的一些字段作为选项类型 . 考虑以下案例类: case class TypeA(field1: Int, field2: Option[String], field3: Boolean) 此案例类将由持久层实例化,该层调用数据库表并返回此案例类的实例 . field2的值来自数据库中的另一个表,几乎在所有情况下,返回TypeA的方法都不需要设置field2 . 通过执行数据库...
  • 1 votes
     answers
     views

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

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

    要在Scala中映射的案例类

    有没有一种很好的方法可以转换Scala case class 实例,例如 case class MyClass(param1: String, param2: String) val x = MyClass("hello", "world") 进入某种映射,例如 getCCParams(x) returns "param1" -&gt...
  • 387 votes
     answers
     views

    Scala的案例类和类之间有什么区别?

    我在Google中搜索了 case class 和 class 之间的差异 . 每个人都提到当你想在类上进行模式匹配时,使用用例类 . 否则使用类,并提及一些额外的额外津贴,如equals和哈希码覆盖 . 但这些是为什么应该使用案例类而不是类的唯一原因? 我想在Scala中这个功能应该有一些非常重要的原因 . 有什么解释或者是否有资源可以从中了解有关Scala案例类的更多信息?
  • 12 votes
     answers
     views

    关于Scala案例类的思考

    我正在尝试编写一个特性(在Scala 2.8中),它可以混合到一个case类中,允许在运行时检查它的字段,以用于特定的调试目的 . 我想按照它们在源文件中声明的顺序返回它们,我想省略case类中的任何其他字段 . 例如: trait CaseClassReflector extends Product { def getFields: List[(String, Any)] = { ...
  • 11 votes
     answers
     views

    为什么案例对象可序列化而案例类不是?

    我正在玩这个例子http://scala.sygneca.com/code/remoteactors来了解远程演员如何在Scala中工作(2.8.0) . 特别是我稍微修改了演员发送的消息如何定义如下: sealed trait Event extends Serializable case object Ping extends Event case object Pong extends Ev...
  • 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 + ":" + id def name = "A&...
  • 0 votes
     answers
     views

    Scala多个嵌套案例Clases

    大家好,我在SCALA上创建了以下案例类: sealed abstract class Value; case class U(name: String) extends Value case class L(name: String) extends Value case class B(name: String) extends Value sealed abstract c...
  • 4 votes
     answers
     views

    Scala中嵌套类型的模式匹配

    我试图在Scala中实现一些有效的枚举 . 我想使用案例类来做到这一点,以便编译器能够检测任何非详尽的模式匹配 . 这在基本形式下工作正常,例如: sealed abstract class HorizontalAlignment case object Left extends HorizontalAlignment case object Right extends HorizontalAli...
  • 10 votes
     answers
     views

    复合类型的案例类伴随对象生成错误

    定义空特性测试: trait Test 复合型中使用的是什么: scala> val a : Int with Test = 10.asInstanceOf[Int with Test] a: Int with Test = 10 和带有复合类型参数的case类(如Unboxed Tagged Type): scala> case class Foo(a: Int with Tes...
  • -2 votes
     answers
     views

    如何从Scala的案例类中读取?

    我是Scala的新手 . 我有一个案例类 . 代码如下 . case class ReportInfoPosted( name: Option[String], id: Option[String], order: Option[Int] ) 我还有一个函数返回类的 seq 对象 . 这就是返回的内容 . ReportInfoPosted(Some(Sales Dollars...
  • 38 votes
     answers
     views

    为什么case类伴随对象扩展了FunctionN?

    创建案例类时,编译器会创建一个对应的伴随对象,其中包含一些案例类的好处:与主构造函数 equals , hashCode 和 copy 匹配的 apply 工厂方法 . 奇怪的是,这个生成的对象扩展了FunctionN . scala> case class A(a: Int) defined class A scala&g...
  • 8 votes
     answers
     views

    斯卡拉鸭打字模式匹配

    我有一个类似下面的案例类: // parent class sealed abstract class Exp() // the case classes I want to match have compatible constructors case class A (a : Exp, b : Exp) extends Exp case class B (a : Exp, b : Exp) ...
  • -2 votes
     answers
     views

    覆盖scala中的case类方法

    我试图覆盖我的case类中的trait方法,它想要显示case类的所有成员 . 我正在使用它进行调试 . trait A{ def myMethod(employee:Emp):Unit } case class Emp(id:String,name:String) extends A { override def myMethod(employee: Emp): Unit = ...
  • 2 votes
     answers
     views

    使用泛型和案例类方法的Scala特征

    我有以下情况/代码; trait Model { def myField: String } case class MyModel(myField: String) extends Model 在为我的模型类创建DAO的传统模型中,我想创建一个包含一些通用CRUD操作的DAO特征 . 注意......持久性框架在这里并不重要......问题是在使用泛型的特征中使用案例类方法 . 据说我...
  • 16 votes
     answers
     views

    Scala案例类使用Serializable扩展Product

    我正在学习scala,并尝试了以下形式Scala Cookbook: trait Animal trait FurryAnimal extends Animal case class Dog(name:String) extends Animal case class Cat(name:String) extends Animal 现在,当我做到以下时: val x = Array(Dog(&q...
  • 1 votes
     answers
     views

    与Scala中的Restful服务交互的良好抽象?

    我想创建表示来回传递给Restful服务的数据结构的对象 . 服务中记录的记录与Scala代码中与之交互的记录之间必须存在明显而直接的关系,例如: obj.id 表示对象的 id 字段 . 我希望能够以声明的方式定义哪些字段构成记录 . 对于每个字段,我希望能够声明属性,如必需/可选,唯一,数据类型,最大长度,最小/最大值,默认值等,就像SQL中表的定义一样 obj.json 返...
  • 2 votes
     answers
     views

    如何使用在Scala中创建数据集的通用案例类实现特征

    我想创建一个应该用案例类T实现的Scala特征 . 特性只是加载数据并将其转换为类型为T的Spark数据集 . 我得到的错误是没有编码器可以存储,我认为是因为Scala不知道T应该是一个案例类 . 我该如何告诉编译器?我已经看到某个地方我应该提到Product,但是没有定义这样的类...请随意提出其他方法来做到这一点! 我有以下代码,但它没有编译错误:42:错误:无法找到存储在数据集中的类型的编码...
  • 1 votes
     answers
     views

    Scala:如何模式匹配内部案例类的封闭对象?

    我有一个内部案例类,特别是来自this问题的事件,并且想要匹配它,包括外部对象: class Player { var _life = 20 def life = _life def gainLife(life: Int) = execute(GainLife(life)) case class GainLife(life: Int) extends Event { d...
  • 3 votes
     answers
     views

    如何模式匹配继承树中的抽象父类

    我是scala的新手,拥有java背景 . 有没有办法在类继承树中模式匹配超类(或特征),叶子作为案例类和节点抽象类或特征?据我所知,不允许使用case类继承 . 我认为在大型继承树中匹配抽象类的模式会非常有用 在下面的代码中,编译期间匹配语句错误的最后一种情况 sealed trait Person { def name: String } case class Customer(nam...
  • 7 votes
     answers
     views

    定义要在scala中按案例类扩展的特征

    我有一些case类,它的伴随对象中定义了一个方法 tupled . 从下面的代码对象中可以看出,它只是代码重复 . case class Book(id: Int, isbn: String, name: String) object Book { def tupled = (Book.apply _).tupled // Duplication } case class Author...
  • 63 votes
     answers
     views

    案例类继承的* so *错误是什么?

    在寻找别的东西时,我只是偶然发现了一些关于恶魔案例类继承的评论 . 有一个名为 ProductN 的东西,可怜的和国王,精灵和巫师,以及如何通过案例类继承丢失某种非常理想的属性 . 那么case类继承有什么问题呢?
  • 13 votes
     answers
     views

    Scala:在模式匹配中混合特征和案例类

    我想匹配一些案例类 . 如果我不知道它们,我想匹配类必须扩展的指定特征 . 这看起来像 trait Event //root trait trait Status extends Event //special trait trait UIEvent extends Event //special trait case class Results extends Event //conc...

热门问题