Scala导入中的双下划线是什么意思?

时间:2014-12-05 12:02:14

标签: scala playframework

假设您正在导入这样的库:

import play.api.libs.json.{__, Writes }

双下划线有什么作用?

2 个答案:

答案 0 :(得分:9)

JsPath是用于创建读/写的核心构建块。 JsPath表示JsValue结构中的数据位置。您可以使用JsPath对象(根路径)通过使用类似于遍历JsValue的语法来定义JsPath子实例:

import play.api.libs.json._

val json = { ... }

// Simple path
val latPath = JsPath \ "location" \ "lat"

// Recursive path
val namesPath = JsPath \\ "name"

// Indexed path
val firstResidentPath = (JsPath \ "residents")(0)

play.api.libs.json包定义了JsPath的别名:__(双下划线)。如果您愿意,可以使用它:

val longPath = __ \" location" \"长"

答案 1 :(得分:5)

它是从包对象json:

导入的值
package object json {

  /**
   * Alias for `JsPath` companion object
   */
  val __ = JsPath

}