我想检查是否有任何当前登录的用户角色在特定的角色列表中。但是可以是任何两个集合。
基本上我想检查[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).empty
或a.any { it in b }
,但我认为disjoint
解决方案是最直接的解决方案,并且(这里很容易被炒作)可能是性能最高的解决方案,因为它不需要中间集合或闭包(更新:好吧,the code for disjoint
揭示了它做了一些工作)时髦的东西...但是然后几乎所有的Groovy方法都使用= P)。关于grails - Grails集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11226480/