我有一個列舉,目前由于某種原因,當我在數值上回圈時,沒有輸出任何東西:
我有一個列舉,目前由于某種原因,當我在數值上回圈時,沒有輸出任何東西:
object UserType extends Enumeration {
type UserType = UTValue
protected case class UTValue(name: String, roles: Set[String]) extends super.Val{
//override def toString()。字串 = 名稱
}
val anonymous = UTValue("anonymous"/span>, Set.empty)
val superUser = UTValue("super", Set("member"/span>, "admin"/span>, "edit"/span>, "delete"/span>)
}
println(UserType.anonymous)
println(UserType.superUser)
println(UserType.values.map(println))
輸出結果是:
anonymous
superUser
anonymous
超級用戶
TreeSet(())
為什么會回傳一個空的TreeSet(())?
我的主要問題。 我怎樣才能遍歷所有包含角色 "member "的Enumeration值呢?
(scala 2.13.x) uj5u.com熱心網友回復: 你在map里面列印值,println回傳Unit,如果你去掉map里面的println,比如 由于它是TreeSet,它洗掉了重復的值,只保留了一個單元值(),這就是為什么你會得到 uj5u.com熱心網友回復: 你需要在
標籤:UserType.values.filter(_.role.contains("member")
println(UserType.values.map(value => value)) object UserType extends Enumeration {
type UserType = UTValue
protected case class UTValue(name: String, roles: Set[String]) extends super.Val{
//override def toString()。字串 = 名稱
}
val anonymous = UTValue("anonymous"/span>, Set.empty)
val superUser = UTValue("super", Set("member"/span>, "admin"/span>, "edit"/span>, "delete"/span>)
}
println(UserType.anonymous)
println(UserType.superUser)
println(UserType.values.map(x => x))
TreeSet(())UserType中進行隱式轉換。object UserType extends Enumeration {
type UserType = UTValue
protected case class UTValue(name: String, roles: Set[String]) extends super.Val{
//override def toString()。字串 = 名稱
}
val anonymous = UTValue("anonymous"/span>, Set.empty)
val superUser = UTValue("super", Set("member", "admin", "edit", "delete")
import scala.language.implicitConversions
implicit def valueToUTValue(x: Value) 。UTValue = x.asInstanceOf[UTValue] 。
}
UserType.values.filter(_.role.contains("member")).forach(println)
