liv*_*arn 2 gremlin tinkerpop3
我注意到在Tinkerpop Gremlin 3.3中的一些步骤函数中使用了双下划线.有人可以告诉我们为什么我们使用这个双下划线的例子吗?我在文档中找不到关于此的足够信息.
__.允许你定义匿名Traversal,即.a Traversal不受特定约束TraversalSource.
在Gremlin控制台中,所有Gremlin步骤都是静态导入的,因此您永远不需要为匿名遍历添加前缀,__.除非匿名遍历以目标语言中的保留关键字开头.在Groovy中,这是默认的Gremlin风格,这是in()和as()步骤的情况:因为这些是保留关键字,这两个步骤必须以前缀为前缀__.
在Java中,您可以__.通过静态导入程序中的所有步骤来避免使用前缀:
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
Run Code Online (Sandbox Code Playgroud)
请参阅文档中的小注释部分:http://tinkerpop.apache.org/docs/3.3.0/reference/#graph-traversal-steps
__ 在 Java API 中用于指代传入的遍历(顶点或边)。例如:在 gremlin shell 中,可以写这样的东西
graph.traversal().V().repeat(out("edgeType")).until(hasLabel("label")).toList()
Run Code Online (Sandbox Code Playgroud)
但在java中,需要匿名遍历来在repeat和until(或任何其他函数,如by、choose等)中调用函数“out”和“hasLabel”。上面的 Java 遍历将如下所示:
graph.traversal().V().repeat(__.out("edgeType")).until(__.hasLabel("label")).toList()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |