Gremlin 小精灵,身份是什么

Gremlin 小精灵,身份是什么,gremlin,Gremlin,我使用的是java gremlin,因为我在internet上读到的大多数示例都是用groovy编写的,我认为标识管道在groovy中有特殊的意义,但我发现它存在于java api中,这意味着什么?如TinkerPop 2.x中所述,(将任意对象转化为管道: gremlin> x = [1,2,3] ==>1 ==>2 ==>3 gremlin> x._().transform{it+1} ==>2 ==>3 ==>4 gremlin> x

我使用的是java gremlin,因为我在internet上读到的大多数示例都是用groovy编写的,我认为标识管道在groovy中有特殊的意义,但我发现它存在于java api中,这意味着什么?

如TinkerPop 2.x中所述,
将任意对象转化为管道:

gremlin> x = [1,2,3]
==>1
==>2
==>3
gremlin> x._().transform{it+1}
==>2
==>3
==>4
gremlin> x = g.E.has('weight', T.gt, 0.5f).toList()
==>e[10][4-created->5]
==>e[8][1-knows->4]
gremlin> x.inV
==>[StartPipe, InPipe]
==>[StartPipe, InPipe]
gremlin> x._().inV
==>v[5]
==>v[4]
在Tinkerpop3.x中,它基本上具有相同的含义,但我们更倾向于将其称为匿名遍历的开始,即不绑定到图实例的遍历。你可以在Gremlin用户邮件列表上的最新帖子中了解更多。下面是它在3.x中的外观:

gremlin> __(1,2,3)
==>1
==>2
==>3
gremlin> __(1,2,3).map{g.V(it.get()).next()}
==>v[1]
==>v[2]
==>v[3]
本节介绍了它的使用示例:

实际上,您看到的比您想象的要多,因为文档对它进行了静态导入,所以您实际上不必使用“\uuux()”。例如:

gremlin> g.V().out('knows').where(out('created'))
==>v[4]
事实上:

gremlin> g.V().out('knows').where(__().out('created'))
==>v[4]
最后,请注意,在Tinkerpop3.x中,Groovy只是小精灵的一种“味道”,它引入了一点语法糖分。Java8上的3.x中的Gremlin语言看起来与Groovy风格基本相同


无法准确地告诉您它带来的价值,但它看起来只是映射到自身

“identity()-步骤(映射)是一个将当前对象映射到自身的标识函数。”