case-class相关内容
我正在从 Slick 迁移到 Slick 2,在 Slick 2 中,您打算在投影到案例类时使用 tupled 方法(如下所示 http://slick.typesafe.com/doc/2.0.0-RC1/migration.html) 问题是当 case 类有一个伴生对象时,即如果你有这样的东西 case class Person(firstName:String, lastName:
..
我正在学习 Scala 并尝试遵循 Scala Cookbook 的形式: trait 动物trait FurryAnimal 扩展了 Animalcase class Dog(name:String) extends Animalcase class Cat(name:String) extends Animal 现在,当我执行以下操作时: val x = Array(Dog("Fido"
..
我正在使用 Scala 组合器制作解析器.太棒了.我最终得到的是一长串纠缠的 case 类,例如:ClassDecl(Complex,List(VarDecl(Real,float), VarDecl(Imag,float))),只是长了 100 倍.我想知道是否有一种好方法可以以树状方式打印这样的案例类,以便更容易阅读..?(或其他形式的Pretty Print) ClassDecl名称 =
..
我有一个这样定义的案例类: case class StreetSecondary(指示符:字符串,值:选项[字符串]) 然后我定义一个显式伴随对象: object StreetSecondary {//暂时为空} 定义显式伴生对象 StreetSecondary 的行为导致编译器生成的“隐式伴生对象"丢失;即替换为无法访问编译器生成的版本.例如,tupled 方法在案例类 StreetSe
..
当你创建一个 case 类时,编译器会创建一个相应的伴随对象,其中包含一些 case 类的优点:一个 apply 工厂方法匹配主构造函数,equals、hashCode 和 copy. 有点奇怪,这个生成的对象扩展了 FunctionN. scala>案例类 A(a: Int)定义类 A标度>A: (Int => A)res0: (Int) =>A= 只有在以下情况下才会出现这
..
是否有一种简单的方法可以将 case 类转换为元组? 当然,我可以轻松编写样板代码来执行此操作,但我的意思是没有样板. 我真正想要的是一种轻松制作按字典顺序排序的案例类的方法.我可以通过导入 scala.math.Ordering.Implicits._ 来实现元组的目标,瞧,我的元组为它们定义了一个排序.但是 scala.math.Ordering 中的隐式通常不适用于案例类.
..
如果您编写的代码使用了许多漂亮的、不可变的数据结构,那么案例类似乎是天赐之物,只需一个关键字即可免费为您提供以下所有功能: 默认情况下一切都是不可变的 自动定义的吸气剂 体面的 toString() 实现 符合 equals() 和 hashCode() 带有用于匹配的 unapply() 方法的伴侣对象 但是将不可变数据结构定义为 case 类有什么缺点? 它对班级或其
..
我想创建一个宏生成的密封抽象类和案例类的层次结构.http://docs.scala-lang.org 有一个类似的例子/overviews/macros/typemacros.html 但现在已过时.这还有可能吗? 我认为为某些指定的语法生成类型安全的 AST 会非常强大.理想情况下,IDE 能够解析所有类. 解决方案 首先是一些无耻的自我推销:Eugene Burmako 和我是
..
假设我有很多类似的数据类.这是一个示例类 User,其定义如下: case class User (name: String, age: Int, posts: List[String]) {val numPosts: Int = posts.length...def foo = "bar"...} 我对自动创建一个方法(在编译时)感兴趣,该方法返回一个 Map ,每个字段名称在调用时都映射到
..
是否有一种很好的方法可以转换 Scala case class 实例,例如 case class MyClass(param1: String, param2: String)val x = MyClass("你好", "世界") 转换成某种映射,例如 getCCParams(x) 返回“param1" ->“你好",“param2" ->“世界" 适用于任何案例类,而不仅仅是预定义的.我
..
Scala 案例类在构造函数中限制为 22 个字段.我想超过这个限制,有没有办法通过继承或组合来处理案例类? 解决方案 最近(2016 年 10 月,OP 六年后),博客文章“Scala 和 22" 来自 Richard Dallaway 探索了这个限制: 早在 2014 年,Scala 2.11 发布时,就移除了一个重要的限制: 带有 > 的案例类现在允许使用 22 个参数.
..
假设我有以下两个case classes: case class Address(street: String, city: String, state: String, zipCode: Int)case class Person(firstName: String, lastName: String, address: Address) 以及以下 Person 类的实例: val raj
..
是否可以通用替换案例类中的参数?更具体地说,假设我想要一个替代函数,它接收一个“查找"案例类和一个“替换"案例类(如语法规则的左侧和右侧)以及一个目标案例类,并且该函数将返回一个带有 find 案例类参数的新案例类替换为替换案例类?该函数还可以简单地采用一个案例类(Product?)和一个要应用于案例类的所有参数/产品的函数. 显然,给定一个特定的案例类,我可以使用 unapply 和 ap
..
在 Scala 中,假设我有一个这样的案例类: case class Sample(myInt: Int, myString: String) 有没有办法让我获得 Seq[(String, Class[_])],或者更好的是,Seq[(String, Manifest)],描述案例类的参数? 解决方案 又是我(两年后).这是使用 Scala 反射的不同解决方案.它的灵感来自 博客文章,
..
如何使用 Scala 2.10 中的新反射模型从 Scala 中的案例类中提取字段值?例如,使用下面的不拉出字段方法 def getMethods[T:TypeTag](t:T) = typeOf[T].members.collect {案例 m:MethodSymbol =>米} 我打算将它们泵入 for {field 解决方案 MethodSymbol 有一个 isCaseAc
..
嗨,我有一个 RDD,它基本上是在读取 CSV 文件后制作的.我已经定义了一个方法,它基本上根据输入参数将 rdd 的行映射到不同的 case 类. 返回的RDD需要转换为dataframe当我尝试运行相同的程序时,出现以下错误. 定义的方法是 case class Australiafile1(sectionName:String,progressCentre:String,va
..
我正在努力用我自己的实现替换案例类的伴随对象上的 unapply 方法.在调查了与实现 unapply 相关的许多不同切线之后,似乎在大多数情况下都有一个 null 保护,无论是在编译器生成的代码中还是在它的实现中明确地被重新定义.编译器为 unapply 生成的代码看起来与此类似(其中一些使用 eq 而不是 ne): def unapply(location: Location): Optio
..
我是具有 Java 背景的 Scala 新手. 有没有办法在类继承树中模式匹配超类(或特征),叶子作为案例类,节点抽象类或特征?据我所知,case类继承是不允许的. 我认为在大型继承树中模式匹配抽象类会很有帮助 在下面的代码中,最后一种情况是在编译过程中匹配语句错误 密封特质 Person {定义名称:字符串}case class Customer(name: String,
..
我刚刚在 Scala actors 包中看到了这个案例类: 案例类![a](ch: Channel[a], msg: a) 在 JavaDoc 中,它以下列形式描述了用法: 接收{案例Chan1!msg1 =>...案例Chan2!msg2 =>...} 为什么不是: 接收{case !(Chan1, msg1) =>...case !(Chan2, msg2) =>...} 是爆炸运
..
情况是这样的.我想像这样定义一个案例类: case class A(val s: String) 并且我想定义一个对象以确保当我创建类的实例时,“s"的值总是大写,如下所示: 对象 A {def apply(s: String) = new A(s.toUpperCase)} 然而,这不起作用,因为 Scala 抱怨 apply(s: String) 方法被定义了两次.我知道 case 类
..