数组/词典在阵列的isEmpty shotrcut

问题描述:

让说,我有一些球队不同的球员在他们每个人:数组/词典在阵列的isEmpty shotrcut

var PlayersShowByTeams:[String:[String]]=[:] 

现在..我想要做的东西在我的代码,如果这个数组为空

我的问题是..我可以检查是否数组是空的快捷方式?而不是.. 让所有的球队一样,名字的另一个数组:

var teams:[String] = [] 

然后检查是否每一支球队是空的从玩家的符号和(& &)这样的:

if(playersShowByTeam[teams[0].count=0 && playersShowByTeam[teams[1].count=0 && playersShowByTeam[teams[2].count=0 //.. and so on 
{ 
//do something 
} 

如果我试图用.isEmpty这样的:

if (playerShowByTeam.isEmpty){//do something} 

即使有在这些球队没有更多的玩家数组它显示我虚假(当我打印时)..因为球队的名字仍然在里面。

  1. 使用.isEmpty或使用.count = 0有什么不同?
  2. 如何让代码更短?

在此先感谢!

func allTeamsEmpty(teams: [String : [String]]) -> Bool { 
    return teams.filter{teamName, teamMembers in !teamMembers.isEmpty}.isEmpty 
} 

此函数过滤字典,以便保留非空团队。如果在过滤之后字典是空的,那么所有的队伍都必须被过滤掉,因为它们不是空的。

+0

问题..我试图复制FUNC和它的节目我错了:“元组类型的值没有成员isEmpty” –

+0

已修复,请参阅我的编辑 – Alexander

+0

哇!这真的很棒..谢谢 –

检查至少1队存在

var hasTeams: Bool { 
    return PlayersShowByTeams.keys.count > 0 
} 

检查至少1队有球员

var hasTeamWithPlayers: Bool { 
    return PlayersShowByTeams.contains{ !$1.isEmpty } 
}