gpt4 book ai didi

Scala 案例类和构造函数

转载 作者:行者123 更新时间:2023-12-03 22:31:10 26 4
gpt4 key购买 nike

我发现自己写了很多(某种程度上的)样板代码。例如说我有以下特点

trait Foo {
def x: Int
}

trait Bar {
def y: Boolean
def z: String
}

然后我想要一个不多于或少于实现这些的案例类。

case class MyClass(x: Int, y: Boolean, z: String) extends Foo with Bar

这看起来并不烦人,但现在想象一下,我的特征每个都有十几个 def 并且名称 xy , 和 z 更长。写出案例类意味着我必须将所有这些重写为 MyClass 的参数。

有没有一种方法可以根据我扩展的特征自动生成 x: Int, y: Boolean, z: String 构造函数部分?

最佳答案

我想你要找的是 annotation macro可以为您处理这项工作。然后,您可以通过编写如下内容来调用此宏:

@FieldsFromTraits
case class MyClass extends Foo with Bar

注释宏然后可以使用来自特征的信息重写您的案例类。

做类似事情的库是 MetaRest .您可能会尝试调整该实现。我看看今晚能不能把东西放在一起。

关于Scala 案例类和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com