如何在Scala中构造简单的和类型?

时间:2018-04-17 16:02:16

标签: scala types

当您在Scala中搜索示例和类型时,您会得到类似的内容:

sealed trait Pet
case class Cat(name: String) extends Pet
case class Fish(name: String, color: Color) extends Pet
case class Squid(name: String, age: Int) extends Pet

是否也可以从IntString这样的简单数据类型构建和类型? 像type simpleType = Int | String | Boolean这样的东西。

2 个答案:

答案 0 :(得分:0)

您可以使用VALUE CLASSES AND UNIVERSAL TRAITS

执行类似操作

例如:

sealed trait Numbers extends Any
case class IntT(val underlying: Int) extends AnyVal with Numbers
case class LongT(val underlying: Long) extends AnyVal with Numbers

答案 1 :(得分:0)

看看支持这些分离的https://github.com/frees-io/iota。它需要Cats或Scalaz作为依赖,并允许创建类似的类型:

select g.dte
from generate_series('2018-04-01'::timestamp, '2018-04-30'::timestamp, interval '1 day') g(dte);