当谈到 Gremlin 时,这里总共 n00b,但是有人介意告诉我“转换”和“副作用”之间的区别吗?我阅读了 Gremlin Docs,两者似乎都“有时”接受输入、处理数据并产生输出。
当看起来“转换”主要是“获取者”时,我以为我正在做某事,但是为什么将其称为“转换”?然后我看到他们将函数置于转换之下,而不仅仅是获取数据。
任何帮助表示赞赏,提前致谢!
Atransform表现为映射函数,其中 Gremlin 管道中的值被逐字转换为不同的值:
gremlin> g.V.transform{it.name}
==>marko
==>vadas
==>lop
==>josh
==>ripple
==>peter
Run Code Online (Sandbox Code Playgroud)
请注意,在上面的示例中,我们已从步骤Vertex之前的atransform转到该 上name属性的字符串值Vertex。现在看看会发生什么sideEffect:
gremlin> g.V.sideEffect{it.name}
==>v[1]
==>v[2]
==>v[3]
==>v[4]
==>v[5]
==>v[6]
Run Code Online (Sandbox Code Playgroud)
The Vertexpass throughsideEffect不变(即它sideEffect作为 a退出Vertex,就像它进入一样)。a 的重点sideEffect是您可以在管道的那一步做一些与管道本身的处理无关的“事情”。换句话说,sideEffect闭包的返回值基本上被忽略了。