数组/词典在阵列的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}
即使有在这些球队没有更多的玩家数组它显示我虚假(当我打印时)..因为球队的名字仍然在里面。
- 使用.isEmpty或使用.count = 0有什么不同?
- 如何让代码更短?
在此先感谢!
答
func allTeamsEmpty(teams: [String : [String]]) -> Bool {
return teams.filter{teamName, teamMembers in !teamMembers.isEmpty}.isEmpty
}
此函数过滤字典,以便保留非空团队。如果在过滤之后字典是空的,那么所有的队伍都必须被过滤掉,因为它们不是空的。
答
检查至少1队存在:
var hasTeams: Bool {
return PlayersShowByTeams.keys.count > 0
}
检查至少1队有球员:
var hasTeamWithPlayers: Bool {
return PlayersShowByTeams.contains{ !$1.isEmpty }
}
问题..我试图复制FUNC和它的节目我错了:“元组类型的值没有成员isEmpty” –
已修复,请参阅我的编辑 – Alexander
哇!这真的很棒..谢谢 –