Scala枚举中值和值之间的差异
我是斯卡拉的新手。请帮助我理解以下代码中的值和值之间的差异:Scala枚举中值和值之间的差异,scala,enumeration,Scala,Enumeration,我是斯卡拉的新手。请帮助我理解以下代码中的值和值之间的差异: object CardsEnum extends Enumeration{ type CardsEnum = Value val spades = Value("♠") val diamonds = Value("♦") val hearts = Value("♥") val clubs = Value("♣") def isRed(c:CardsEnum.Value) = c==hearts || c==diamonds }
object CardsEnum extends Enumeration{
type CardsEnum = Value
val spades = Value("♠")
val diamonds = Value("♦")
val hearts = Value("♥")
val clubs = Value("♣")
def isRed(c:CardsEnum.Value) = c==hearts || c==diamonds
}
object NewCardsEnum extends App{
import CardsEnum._
CardsEnum.values foreach println
println(for (e <- CardsEnum.values) yield (e,isRed(e)))
}
对象CardsEnum扩展枚举{
类型CardsEnum=Value
val spades=值(“♠")
瓦尔钻石=价值(“♦")
val=值(“♥")
val=价值(“♣")
def isRed(c:CardsEnum.Value)=c==红心| | c==钻石
}
对象NewCardsEnum扩展应用程序{
进口卡德森_
CardsEnum.foreach println的值
println(对于(e这只是一个类型别名:
type CardsEnum = Value
这不是强制性的,它只是让您始终使用CardsEnum
作为一种类型:
import CardsEnum._
def func(e: CardsEnum) = ...
无需编写CardsEnum.Value
:
def func(e: CardsEnum.Value) = ...
val spades = Value("♠")
此行声明一个名为spades
的新变量,其结果是调用方法Value
:
def func(e: CardsEnum.Value) = ...
val spades = Value("♠")
方法值(“♠“”
创建名为的新对象(“”♠”
并将其添加到枚举中。您作为参数提供的名称由toString
方法使用
添加到枚举中的所有值都在.values
集合中,这意味着这将打印♠ ♦ ♥ ♣代码>:
CardsEnum.values foreach println
有一个类型值、一个创建它们的方法值和一个收集它们的方法值。但是每个人都会说,作为一个新用户,不要费心对它们进行排序。有一个问题是为什么不使用Scala的旧枚举。