gpt4 book ai didi

scala - 如何为 Scala 3 枚举创建通用方法

转载 作者:行者123 更新时间:2023-12-04 12:27:21 25 4
gpt4 key购买 nike

我想要一个简单的enumDescr任何 Scala 3 枚举的函数。
例子:

  @description(enumDescr(InvoiceCategory))
enum InvoiceCategory:
case `Travel Expenses`
case Misc
case `Software License Costs`
斯卡拉 2 这很简单( Enumeration ):
def enumDescr(enum: Enumeration): String =
s"$enum: ${enum.values.mkString(", ")}"
但是在 中是怎么做的斯卡拉 3 :
def enumDescr(enumeration: ??) = ...

最佳答案

我没有看到所有人共享的任何共同特征 enum伴侣对象。
您仍然可以调用 values不过,反射(reflection)一下:

import reflect.Selectable.reflectiveSelectable

def descrEnum(e: { def values: Array[?] }) = e.values.mkString(",")

enum Foo:
case Bar
case Baz

descrEnum(Foo) // "Bar,Baz"

关于scala - 如何为 Scala 3 枚举创建通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69743692/

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