scala - Scala:如何在函数中返回元组?“类型不匹配”
问题描述
我正在使用图书馆gremlin-scala
与 Janusgraph 进行交互。
使用 DSL,插入新顶点的一种方法是执行以下操作:
val Id = Key[Long]("id")
val Name = Key[String]("name")
graph + ("label", Id -> 42, Name -> "Mike")
我想把这部分变成一个函数("label", Id -> 42, Name -> "Mike")
case class VertexModel(id: Long, name: String) {
def toVertex: (Label, KeyValue[Long], KeyValue[String]) = {
val Id = Key[Long]("id")
val Name = Key[String]("name")
("item", Id -> id, Name -> name)
}
}
val model = VertexModel(1, "Bill")
graph + model.toVertex
这失败并出现以下错误:
Error:(26, 11) type mismatch;
found : T1
required: gremlin.scala.Label
(which expands to) String
graph + vertex
Error:(26, 11) type mismatch;
found : T2
required: gremlin.scala.KeyValue[Long]
graph + vertex
Error:(26, 11) type mismatch;
found : T3
required: gremlin.scala.KeyValue[String]
graph + vertex
不知道如何解决这个问题。
解决方案
为什么需要扩展方法toVertex
?
这不就像
import gremlin.scala._
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
object App {
implicit val graph: ScalaGraph = TinkerGraph.open.asScala
case class VertexModel(id: Long, name: String)
val model = VertexModel(1, "Bill")
graph + model
}
?
构建.sbt
scalaVersion := "2.12.8"
libraryDependencies += "com.michaelpollmeier" %% "gremlin-scala" % "3.4.0.4"
libraryDependencies += "org.apache.tinkerpop" % "tinkergraph-gremlin" % "3.4.0"
推荐阅读
- javascript - 在我自己的 html 中查询谷歌地图 api 的一些示例
- javascript - 使用 Redux Reselect 过滤评论
- node.js - 在 NodeJS 上的 http 请求中设置 curl 开关
- java - 如何调整我的图标(图像按钮)以使其不会放大?
- reactjs - ReactJS Datepicker 多个日期选择
- javascript - Nodemailer,在本地工作正常,但在我的服务器上不起作用
- java - JavaFx GetChildern() 函数不可用
- perl - Perl — HTTP::Request::Common — POST 文件和数组
- angularjs - 如果我安装了 Angular 6,如何运行 Angular 1.4 应用程序
- javascript - JVM 上跨 Scala.js 和 Scala 的 JSON I/O