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() 的用例相当狭窄,因此找到另一种方法来编写遍历以避免首先使用它,我一点也不感到惊讶。