我不得不说我不理解Scala枚举类。我可以从文档中复制粘贴示例,但我不知道是怎么回事。
object WeekDay extends Enumeration {
type WeekDay = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
类型WeekDay=value
?为什么我必须写这个?val Mon=value
?这到底是什么意思?weekday
对象?并且,val day=weekday.mon
时,为什么要键入weekday.value
,而不是键入weekday
?enumeration
特征有一个类型成员value
表示枚举的各个元素(它实际上是一个内部类,但这里的区别并不重要)。
因此,object weekday
继承了该类型成员。行type WeekDay=value
只是一个类型别名。它很有用,因为在使用import weekday._
将其导入其他地方后,可以使用该类型,例如:
def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun)
相反,一个最小版本将只是:
object WeekDay extends Enumeration {
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
而且您不必导入对象weekday
的内容,但您需要使用类型weekday.value
并限定单个成员。因此该示例将变成
def isWorkingDay(d: WeekDay.Value) = ! (d == WeekDay.Sat || d == WeekDay.Sun)
您可以在Scala中编写val a,b,c=foo
,对于每个值a
、b
和c
方法foo
将被反复调用。enumeration
使用此技巧递增内部计数器,使每个值都是单独的。
如果打开enumeration
的Scala API文档,并单击visibility:all
,您将看到出现该方法。
本文向大家介绍详细了解C# 枚举与位枚举,包括了详细了解C# 枚举与位枚举的使用技巧和注意事项,需要的朋友参考一下 一、枚举的概念: C# 枚举(Enum), 枚举类型是用于声明一组命名的常数的基本数据类型(值类型); 二、枚举的定义: 声明enum变量: 其中enum_name 指定枚举的类型名称; enumeration list 是一个用逗号分隔的标识符列表; 枚举列表中的
我正在努力理解这个概念。我清楚地了解期货是什么。我对Promises有点困惑。下面的代码片段: 现在,以下两个代码片段之间有什么区别? 和 我对第一个的理解是,p成功将完成与该p相关的未来计算。计算是异步的吗?这与使用 Future 块完成与 Promise p 关联的 Future f 的第二个代码片段有何不同?
假设我有这样的枚举 我也有一个类,我想扩展有序[SimpleEnum] 所以在SimpleClass中,我只需要获取附加到相应SimpleEnum val的值。 在java中,我能够声明一个变量的枚举和访问一个实际的值对应于它的这个var,在scala我正在寻找一种方法来获取枚举的实例,并接触到它的值。
问题内容: 是否有比这更好的“解决方法”?访问TableMap上的方法时,我想避免使用PREFIX(局部变量)。 解决方法! 需要! 整个代码示例: 问题答案: 我认为您可能正在尝试将过多的情报投入其中。 我发现这种方法非常有用。它避免了由于无法扩展s 而引起的许多问题(实际上,您可以但不能以非常有用的方式)。 本质上,将其作为子类并将其特性作为传递给您的超类。这样,您仍然可以获得包括类型安全性在
问题内容: 是否有关于何时使用案例类(或案例对象)与扩展Scala中的枚举的最佳实践指南? 他们似乎提供了一些相同的好处。 问题答案: 最大的不同是Enumerations支持从某些nameString实例化它们。例如: 然后,您可以执行以下操作: 当希望保留枚举(例如,到数据库)或根据文件中的数据创建枚举时,此功能很有用。但是,我发现总体上来说,枚举在Scala中有点笨拙,并且具有附加组件的尴尬
本文向大家介绍谈谈你可能并不了解的java枚举,包括了谈谈你可能并不了解的java枚举的使用技巧和注意事项,需要的朋友参考一下 前言 枚举在java里也算个老生长谈的内容了,每当遇到一组需要类举的数据时我们都会自然而然地使用枚举类型: 当然今天我们要探讨的并非是java中enum的基础语法,本次的主题将会深入enum的本质,并探讨部分高阶用法。本文基于Oracle JDK 14.0.2和jad v