Gremlin 是否支持 none() 步骤?
Is the none() step supported in Gremlin?
我正在为我的应用程序中的可组合遍历构建一个系统,并且有一个案例 none() step 会有所帮助。我需要明确地 return 不遍历。它似乎没有在 Gremlin javascript.
中实现
"errorType": "TypeError", "errorMessage": "o.none is not a function"
有没有这个被省略的原因?不应该使用它吗?我正在通过使用 hasId("x")
来解决它,它不应该存在,因此 return 没有遍历,但这是一个 hack。
g.V().choose(
hasCommentingUnlocked({
traversal: hasAccessToPrivateUserData({
traversal: __,
isAdmin,
userId,
grantedTraversal: __.identity(),
declinedTraversal: __.hasId("x"), // __.none() would be helpful here
}),
P,
}),
__.constant(true),
__.constant(false)
)
none()
在 gremlin-javascript 中可能应该是 implemented for consistency,但它实际上更像是一个内部步骤,用作 iterate()
的标记,过滤所有结果。当服务器看到 none()
时,它知道调用了 iterate()
。也就是说,我从多年的开源软件开发中学到的格言是“如果你构建它,人们就会使用它”所以 none()
来寻找一些用例。
当然,根据您的示例,很难说您的用例是否需要 none()
。我倾向于发现 none()
的用例相当狭窄,因此找到另一种方法来编写遍历以避免首先使用它,我一点也不感到惊讶。
我正在为我的应用程序中的可组合遍历构建一个系统,并且有一个案例 none() step 会有所帮助。我需要明确地 return 不遍历。它似乎没有在 Gremlin javascript.
中实现"errorType": "TypeError", "errorMessage": "o.none is not a function"
有没有这个被省略的原因?不应该使用它吗?我正在通过使用 hasId("x")
来解决它,它不应该存在,因此 return 没有遍历,但这是一个 hack。
g.V().choose(
hasCommentingUnlocked({
traversal: hasAccessToPrivateUserData({
traversal: __,
isAdmin,
userId,
grantedTraversal: __.identity(),
declinedTraversal: __.hasId("x"), // __.none() would be helpful here
}),
P,
}),
__.constant(true),
__.constant(false)
)
none()
在 gremlin-javascript 中可能应该是 implemented for consistency,但它实际上更像是一个内部步骤,用作 iterate()
的标记,过滤所有结果。当服务器看到 none()
时,它知道调用了 iterate()
。也就是说,我从多年的开源软件开发中学到的格言是“如果你构建它,人们就会使用它”所以 none()
来寻找一些用例。
当然,根据您的示例,很难说您的用例是否需要 none()
。我倾向于发现 none()
的用例相当狭窄,因此找到另一种方法来编写遍历以避免首先使用它,我一点也不感到惊讶。