【发布时间】:2015-02-07 10:48:00
【问题描述】:
有谁知道是否有一种惯用的方式来命名 Scala 值类的内部值?假设我有一个产品 ID 的值类,是否更好地定义为:
case class ProductId(productId:String) extends AnyVal
case class ProductId(underlying:String) extends AnyVal
case class ProductId(value:String) extends AnyVal
?
这只是偏好问题还是有惯用的指导方针?
【问题讨论】:
-
IMO,
underlying比value更好 -
我不知道任何标准。我倾向于使用
inner,因为它简短明了。 -
我不认为有一些惯用的方法可以做到这一点,因为值类对编译器来说只是一个不错的技巧。但就像@om-nom-nom 所说的那样,
underlying在您需要创建某种包装器的不同情况中很常见。 -
“基础”也是 SIP 中使用的术语,IIRC。
-
什么是 IIRC? SIP15 在示例中同时使用了底层,但在定义中使用了
class C(val u: U) extends AnyVal,所以我猜它也可能是case class ProductId(string: String) extends AnyVal?
标签: scala idioms value-class