如果我有两个列表:
第一个列表=> [1,2,3]
第二个列表=> [3,4,5]
我希望它返回true,因为它们都包含3
吗?如果将3
替换为6
,则将返回false,因为没有元素匹配。
当前尝试
Enum.member?(first_list, fn(x) -> x == second_list end)
Ecto查询:
user_teams = from(
t in MyApp.Team,
left_join: a in assoc(t, :accounts),
where: p.owner_id == ^user.id or (a.user_id == ^user.id and t.id == a.project_id)
) |> Repo.all
current_user_teams = from(
t in MyApp.Team,
left_join: a in assoc(t, :accounts),
where: t.owner_id == ^current_user.id or (a.user_id == ^current_user.id and p.id == a.project_id)
) |> Repo.all
当前修正:
Enum.any?(user_projects, fn(p) -> p in current_user_projects end)
答案 0 :(得分:4)
将Fragment fragment = getActivity().getSupportFragmentManager().findFragmentByTag("MyFragment");
if(fragment != null && fragment instanceof MyFragment)
((MyFragment) fragment).someMethod();
else
Log.e(TAG, "cannot change tab its null...");
与Enum.any?/2
运算符配合使用(这只是调用in
的一种较短形式):
Enum.member?/2
答案 1 :(得分:4)
如果列表很大,则可以使用class ClassB(A):
def __init__(self):
print "I am ClassB"
self.varB = 0
def methodB(self):
if self.varB == 0:
# Error here
self.methodA()
else:
print "Method not executed"
检查这些列表是否不相交:
MapSet
如果您想知道什么是交集(两组元素都相同),则可以使用:
iex(1)> xs = [1, 2, 3]
[1, 2, 3]
iex(2)> ys = [3, 4, 5]
[3, 4, 5]
iex(3)> not MapSet.disjoint?(MapSet.new(xs), MapSet.new(ys))
true
答案 2 :(得分:2)
您可能首先是在十字路口,然后验证它是否为空:
case for i <- [1,2,3], i in [3,4,5], do: i do
[] -> false
[_|_] -> true
end