当前位置: 首页 > 面试题库 >

如何在Scala中为枚举添加方法?

宋昕
2023-03-14
问题内容

在Java中,您可以:

public enum Enum {
    ONE {
        public String method() {
            return "1";
        }
    },
    TWO {
        public String method() {
            return "2";
        }
    },
    THREE {
        public String method() {
            return "3";
        }
    };

    public abstract String method();
}

您如何在Scala中做到这一点?

编辑/有用的链接:

  • https://github.com/rbricks/itemized
  • http://pedrorijo.com/blog/scala-enums/

问题答案:
object Unit extends Enumeration {
  abstract class UnitValue(var name: String) extends Val(name) {
    def m: Unit
  }
  val G = new UnitValue("g") {
    def m {
        println("M from G")
    }
  }
  val KG = new UnitValue("kg") {
    def m {
        println("M from KG")
    }
  }
}


 类似资料:
  • 本文向大家介绍C#中如何为枚举类型添加描述方法【小技巧】,包括了C#中如何为枚举类型添加描述方法【小技巧】的使用技巧和注意事项,需要的朋友参考一下 背景 在我们的日常开发中,我们会经常使用枚举类型。枚举类型(enum type)是具有一组命名常量的独特的值类型。在以下示例中: 声明一个名为 Color 的枚举类型,该类型具有三个成员:Red、Green 和 Blue。 枚举具体是怎么声明呢?枚举声

  • 我不得不说我不理解Scala枚举类。我可以从文档中复制粘贴示例,但我不知道是怎么回事。 什么是?为什么我必须写这个? 为什么?这到底是什么意思? 为什么必须导入对象?并且, 当我编写时,为什么要键入,而不是键入?

  • 问题内容: 我有几个这样的Java枚举 如您所见,这里有很多代码重复。如果有一种方法可以引入诸如抽象的共同祖先类之类的东西,那就太好了。但是java枚举不能固有。最好的方法是什么?谢谢。 编辑:我已经制定出一个类似于ŁukaszBachman和missingfacktor的版本 我看到了一些推理。但是,它仍然不是很令人满意。 由于返回类型不同,因此很难为其定义接口 我可以理解,不是真正的重复,而是

  • 问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它:

  • 问题内容: 考虑以下(简化的)枚举: 可以在以下函数中使用它: 我现在想为此编写一个单元测试,以模拟每个枚举实例中对myMethod()的调用。我尝试了以下方法: 但是,真正的实现和正在调用。 我做错了什么? 问题答案: 枚举中的每个常量都是一个静态的最终嵌套类。因此,要模拟它,您必须在PrepareForTest中指向嵌套类。 返回预初始化的数组,因此在您的情况下也应进行模拟。 每个枚举常量都只

  • 我是第一次玩Scala,所以请耐心等待。还使用 tapir 来声明 API,我在为枚举提供架构时遇到问题。 我定义了一堆枚举,它们是我的域模型的一部分,并扩展了Scala的。例如,这是其中之一: 并且还有许多使用它们的案例类。例如, 使用我们之前定义的枚举,例如: 我想让这个枚举实现一个添加隐式但又不修改原始状态枚举的特征(我不想将枚举 - 以及所有其他枚举 - 耦合到这个特征)。 特征如下所示: