Gremlin transform和sideEffect有什么区别

时间:2014-10-08 17:25:34

标签: gremlin

在Gremlin这里总计n00b,但有人会介意告诉我“转换”和“sideEffect”之间的区别吗?我阅读了Gremlin Docs,他们似乎“有时”接受输入,按摩数据并产生输出。

当我看起来像“变形”主要是“吸气者”时,我以为我正在做某件事,但那么为什么它会被称为“变形”?然后我看到他们把功能置于变换之下,而不仅仅是获取数据。

感谢任何帮助,提前谢谢!

1 个答案:

答案 0 :(得分:2)

transform表现为地图函数,其中Gremlin管道中的值实际上转换为不同的值:

gremlin> g.V.transform{it.name}
==>marko
==>vadas
==>lop
==>josh
==>ripple
==>peter

请注意,在上面的示例中,我们已经从Vertex步骤前的transform变为nameVertex属性的字符串值。现在观看sideEffect

会发生什么
gremlin> g.V.sideEffect{it.name}
==>v[1]
==>v[2]
==>v[3]
==>v[4]
==>v[5]
==>v[6]

Vertex传递sideEffect未更改(即,sideEffect作为Vertex退出,就像它进入时一样)。 sideEffect的要点是你可以在管道的那一步做一些事情"某事"与管道本身的处理无关。换句话说,sideEffect闭包的返回值基本上被忽略了。