現在、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
マニュアルには、私を混乱させる他の多くの例があります。
マルコと彼の友達が私を助けてくれることを願っています。