【问题标题】:Array/Dictionary in array isEmpty shotrcut数组中的数组/字典 isEmpty 快捷方式
【发布时间】:2016-07-25 13:55:31
【问题描述】:

假设我有一些球队,每个球队都有不同的球员:

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. 如何使代码中的 if 更短?

提前致谢!!

【问题讨论】:

    标签: arrays swift dictionary is-empty


    【解决方案1】:
    func allTeamsEmpty(teams: [String : [String]]) -> Bool {
        return teams.filter{teamName, teamMembers in !teamMembers.isEmpty}.isEmpty
    }
    

    此函数过滤字典,以便保留非空团队。如果此过滤后字典为空,则所有团队都必须因为非空而被过滤掉。

    【讨论】:

    • problem.. 我试图复制那个 func,它显示了一个错误:“元组类型的值没有成员 isEmpty”
    • 如果此答案满足您的问题,请点赞并采纳
    【解决方案2】:

    检查是否至少有 1 个团队存在

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

    检查是否至少有1支球队有球员

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多