代码之家  ›  专栏  ›  技术社区  ›  Andrii Abramov Mk.Sl.

泛型的Scala中缀符号

  •  0
  • Andrii Abramov Mk.Sl.  · 技术社区  · 6 年前

    泛型可以用在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 回复  |  直到 6 年前
        1
  •  0
  •   Dragonborn    6 年前

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