我想检查是否有任何当前登录的用户角色在特定的角色列表中。但是可以是任何两个集合。

基本上我想检查[x2,x3,x7]中是否包含[x1,x3,x4]集合的成员

在Groovy(Grails)中如何做到这一点?

最佳答案

您可以使用 Collection#disjoint 方法:

def a = [5, 4, 3]
def b = [7, 6, 5]

// a contains a member of b if they are not disjoint.
assert !a.disjoint(b)
assert a.disjoint([8, 7, 6])

其他替代方法是!a.intersect(b).emptya.any { it in b },但我认为disjoint解决方案是最直接的解决方案,并且(这里很容易被炒作)可能是性能最高的解决方案,因为它不需要中间集合或闭包(更新:好吧,the code for disjoint 揭示了它做了一些工作)时髦的东西...但是然后几乎所有的Groovy方法都使用= P)。

关于grails - Grails集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11226480/

10-13 09:25