通用的Scala前缀表示法

时间:2018-09-03 21:57:56

标签: scala dsl infix-notation

可以在Scala前缀表示法中使用泛型吗?

例如:

// Example from play-json

Json.obj("name" -> "Joe") \ "name" as[String] // Generics in infix notation
                                              // error: type application is not allowed for postfix operators

理想情况下,我想实现以下API:

Json.obj("name" -> "Joe") \ "name" as String // But I think its implossible

当然,使用带圆括号的标准点符号可以很好地工作:

(Json.obj("name" -> "Joe") \ "name").as[String]

我发现的唯一值得讨论的内容:https://groups.google.com/forum/#!msg/scalatest-users/Ujn2d2MdXm0/yvHpk1pOlDMJ

1 个答案:

答案 0 :(得分:0)

中缀表示法只能用于括号,而不能用于捕获类型信息的方括号。如果您在LHS上提供了类型提示,则可以将其删除。