case-class相关内容

如何使用 scala 宏创建函数对象(创建 Map[String, (T) => T])

我正在尝试使用 Scala 宏来创建单参数 copy 方法的案例类映射,每个方法都接受一个 Play Json JsValue 和一个案例类实例,并返回实例的更新副本.但是,我遇到了返回函数对象的宏语法问题. 给定一个案例类 case class Clazz(id: Int, str: String, strOpt: Option[String]) 目的是创建类的复制方法的映射 隐式定 ..
发布时间:2022-01-11 19:55:28 其他开发

如何在 Scala 中使用没有参数的构造函数参数创建案例类的实例?

我正在制作一个通过反射字段值设置的 Scala 应用程序.这工作正常. 但是,为了设置字段值,我需要一个已创建的实例.如果我有一个带有空构造函数的类,我可以使用 classOf[Person].getConstructors.... 轻松做到这一点. 但是,当我尝试使用具有非空构造函数的 Case 类执行此操作时,它不起作用.我拥有所有字段名称及其值,以及我需要创建的 Object 类 ..
发布时间:2022-01-11 19:40:34 其他开发

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

我在 Google 中搜索以找到 case class 和 class 之间的区别.每个人都提到,当您要对类进行模式匹配时,请使用案例类.否则,请使用类并提及一些额外的好处,例如 equals 和哈希代码覆盖.但是这些是人们应该使用案例类而不是类的唯一原因吗? 我想 Scala 中的这个特性应该有一些非常重要的原因.有什么解释或者有什么资源可以了解更多关于 Scala 案例类的信息? ..
发布时间:2022-01-02 13:22:13 其他开发

IntelliJ Scala Plugin的case类缩进很荒谬

当一个 case 类有很多字段并且它们的名字很长时,将每个字段写在每一行中通常是一个好主意: case class Person (名称:字符串,年龄:Int) 这类似于 C/C++ struct 定义并且即使在 case 类变大时也完全可读.但是 IntelliJ IDEA 的默认 Scala 插件会自动更改其缩进: case class Person (名称:字符串,年龄:Int) 这 ..
发布时间:2021-12-18 10:44:49 其他开发

Scala 案例类的重载构造函数?

在 Scala 2.8 中有没有办法重载 case 类的构造函数? 如果是,请放一个片段来解释,如果不是,请解释原因? 解决方案 重载构造函数对于 case 类并不特殊: case class Foo(bar: Int, baz: Int) {def this(bar: Int) = this(bar, 0)}新 Foo(1, 2)新富(1) 但是,您可能还想重载伴随对象中的 a ..
发布时间:2021-12-07 13:33:04 其他开发

为什么参数处于逆变位置?

我正在尝试在特征中使用协变类型参数来构造一个案例类,如下所示: trait MyTrait[+T] {私人案例类 MyClass(c: T)} 编译器说: error: 协变类型 T 出现在值 c 的类型 T 的逆变位置 然后我尝试了以下但它也不起作用: trait MyTrait[+T] {私人案例类 MyClass[U 这次的错误是: error: 协变类型 T 出现在类型中的 ..
发布时间:2021-12-07 13:31:52 其他开发

为简单的案例类定义排序的简单惯用方法

我有一个简单的 Scala 案例类实例列表,我想使用 list.sorted 以可预测的字典顺序打印它们,但收到“没有为...定义隐式排序". 是否存在为案例类提供字典顺序的隐式? 是否有简单的惯用方法将字典顺序混合到 case 类中? scala>案例类A(标签:字符串,负载:Int)标度>val l = List(A("words",50),A("article",2),A("l ..
发布时间:2021-12-07 13:28:42 其他开发

案例类继承有什么问题?

在寻找其他东西时,完全出于巧合,我偶然发现了一些关于案例类继承是多么邪恶的评论.有一个叫做 ProductN 的东西,可怜的和国王的,精灵和巫师的,以及某种非常理想的属性是如何随着案例类继承而丢失的.那么案例类继承有什么问题? 解决方案 一句话:平等 case 类提供了 equals 和 hashCode 的实现.被称为 equals 的等价关系的工作原理如下(即必须具有以下属性): ..
发布时间:2021-12-07 13:21:56 其他开发

动态混合一个特征

有特点 trait Persisted {定义:长} 如何实现一个方法来接受任何 case 类的实例并返回其混合了 trait 的副本? 该方法的签名如下: def toPersisted[T](instance: T, id: Long): T with Persisted 解决方案 这可以通过宏来完成(从 2.10.0-M3 开始正式成为 Scala 的一部分).这是您要查找的 ..
发布时间:2021-12-07 13:08:53 其他开发

Scala 的 case class 和 class 有什么区别?

我在 Google 中搜索以找到 case class 和 class 之间的区别.每个人都提到,当您要对类进行模式匹配时,请使用案例类.否则,请使用类并提及一些额外的好处,例如 equals 和哈希代码覆盖.但是这些是人们应该使用案例类而不是类的唯一原因吗? 我想 Scala 中的这个特性应该有一些非常重要的原因.有什么解释或者有什么资源可以了解更多关于 Scala 案例类的信息? ..
发布时间:2021-12-07 12:43:56 其他开发

案例对象与 Scala 中的枚举

是否有关于何时使用案例类的最佳实践指南(或 case 对象)与在 Scala 中扩展枚举? 它们似乎提供了一些相同的好处. 解决方案 一个很大的区别是 Enumeration 支持从一些 name 字符串实例化它们.例如: object Currency extends Enumeration {val GBP = Value(“GBP")val EUR = Value(“EUR" ..
发布时间:2021-12-07 12:37:16 其他开发

Scala案例类私有构造函数但公共应用方法

如果我有以下带有私有构造函数的案例类,并且我无法访问伴随对象中的应用方法. case class Meter private (m: Int)val m = Meter(10)//不能访问 Meter 类中的构造函数 Meter... 有没有办法使用带有私有构造函数的 case 类,但将生成的 apply-method 保留在伴随的 public 中? 我知道这两个选项之间没有区别(在我 ..
发布时间:2021-11-16 23:01:02 其他开发

使用 Spark 将 json 映射到 case 类(字段名称中的空格)

我正在尝试使用 spark Dataset API 读取 json 文件,问题是此 json 在某些字段名称中包含空格. 这将是一个 json 行 {"字段名称":"值"} 我的案例类需要这样 case class MyType(`Field Name`: String) 然后我可以将文件加载到 DataFrame 中,它会加载正确的架构 val dataframe = spark ..

如何在 Spark SQL 中为自定义类型定义架构?

以下示例代码尝试将一些案例对象放入数据帧中.代码包括使用此特征的案例对象层次结构和案例类的定义: import org.apache.spark.{SparkContext, SparkConf}导入 org.apache.spark.sql.SQLContext密封性状 一些case 对象 AType 扩展了一些case 对象 BType 扩展了一些案例类数据(名称:字符串,t:一些)对象示例 ..
发布时间:2021-11-14 21:15:41 其他开发

如何在 Spark SQL 中为自定义类型定义架构?

以下示例代码尝试将一些案例对象放入数据帧中.代码包括使用此特征的案例对象层次结构和案例类的定义: import org.apache.spark.{SparkContext, SparkConf}导入 org.apache.spark.sql.SQLContext密封性状 一些case 对象 AType 扩展了 Somecase 对象 BType 扩展了一些案例类数据(名称:字符串,t:一些)对 ..
发布时间:2021-11-12 05:26:34 其他开发

Apache Spark 中的案例类相等

为什么 Spark 中的模式匹配与 Scala 中的模式匹配不同?请参见下面的示例...函数 f() 尝试对类进行模式匹配,这在 Scala REPL 中有效,但在 Spark 中失败并导致所有“???".f2() 是一种使用 .isInstanceOf() 在 Spark 中获得所需结果的解决方法,但我知道这在 Scala 中是不好的形式. 对于在 Spark 中以正确方式匹配模式的任何帮 ..
发布时间:2021-11-12 05:25:57 其他开发

Scala 特性实现

我有一个案例类: case class EvaluateAddress(addressFormat: String,筛选地址类型:字符串,值:选项[字符串]){} 这一直很好,直到我有了一个新用例,其中“value"参数可以是类对象而不是字符串. 我处理这个用例的初始实现: case class EvaluateAddress(addressFormat: String,筛选地址类型: ..
发布时间:2021-09-09 19:07:03 其他开发

在案例类的特征中定义“复制"方法

给定的简化代码示例: 密封性状 A {val c1: 字符串val c2: 整数def copy[Z 如何在特征 A 中定义 copy 方法,以便它匹配为案例类和“目标"文件生成的方法?给定定义会进行类型检查并抱怨 B 和 C 类中缺少方法 copy. 解决方案 scala 编译器不会为定义名为 copy 的方法的 case 类生成复制方法. scala -Xprint:typer ..
发布时间:2021-09-09 19:05:40 其他开发