在Gremlin这里总计n00b,但有人会介意告诉我“转换”和“sideEffect”之间的区别吗?我阅读了Gremlin Docs,他们似乎“有时”接受输入,按摩数据并产生输出。
当我看起来像“变形”主要是“吸气者”时,我以为我正在做某件事,但那么为什么它会被称为“变形”?然后我看到他们把功能置于变换之下,而不仅仅是获取数据。
感谢任何帮助,提前谢谢!
答案 0 :(得分:2)
transform
表现为地图函数,其中Gremlin管道中的值实际上转换为不同的值:
gremlin> g.V.transform{it.name}
==>marko
==>vadas
==>lop
==>josh
==>ripple
==>peter
请注意,在上面的示例中,我们已经从Vertex
步骤前的transform
变为name
上Vertex
属性的字符串值。现在观看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
闭包的返回值基本上被忽略了。