10

現在、TinkerPop3 のドキュメントを読んでいます

私が混乱しているのは、 についての説明が見つからないことですnext()

たとえば、next() を使用するか、next() を使用しないと、同じ頂点が返されます

gremlin> g.V().has('name', 'marko')
==>v[1]
gremlin> g.V().has('name', 'marko').next()
==>v[1]

ただし、クラス名は互いに異なります。

gremlin> g.V().has('name', 'marko').getClass()
==>class org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal
gremlin> g.V().has('name', 'marko').next().getClass()
==>class org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex

「next()」がないと、割り当てられた変数には値がありません。

gremlin> marko = g.V().has('name', 'marko')
==>v[1]
gremlin> marko

でも、clockWithResult()出力は完全に異なります。

gremlin> clockWithResult(1){g.V().both().barrier().both().barrier().both().barrier().count().next()}
==>1.079524
==>72
gremlin> clockWithResult(1){g.V().both().barrier().both().barrier().both().barrier().count()}
==>0.11863599999999999
==>[GraphStep([],vertex), VertexStep(BOTH,vertex), NoOpBarrierStep(2147483647), VertexStep(BOTH,vertex), NoOpBarrierStep(2147483647), VertexStep(BOTH,vertex), NoOpBarrierStep(2147483647), CountGlobalStep]

またはこの例:

gremlin> g.V(1).out('knows').values('name').fold()
==>[vadas, josh]
gremlin> g.V(1).out('knows').values('name').fold().next()
==>vadas
==>josh

マニュアルには、私を混乱させる他の多くの例があります。

マルコと彼の友達が私を助けてくれることを願っています。

4

1 に答える 1