在Scala中,有没有办法将价格表示为Y.YY?

时间:2011-10-04 01:24:00

标签: scala

目前,我正在考虑如下表示价格:

case class Price(amount: Double)

允许我这样做

val price = Price(4.52)

是否有任何机制可以让我按如下方式创建Price对象?

val price = $4.52

1 个答案:

答案 0 :(得分:8)

否,因为$4是有效的标识符,.表示方法。

但是你可以说

val $ = Price 

$设置为价格随播广告对象并将Double括号括起来:

scala> val p = $(4.52)
p: Price = Price(4.52)

编辑:您可以做的另一件事是:

scala> implicit def toDollar(d: Double) = new {
     |   def $ = Price(d)
     | }
toDollar: (d: Double)java.lang.Object{def $: Price}

scala> val p = 4.52 $
p: Price = Price(4.52)