首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在枚举中再循环一次

在枚举中再循环一次
EN

Stack Overflow用户
提问于 2017-08-20 08:04:43
回答 2查看 58关注 0票数 1

下面的代码是循环遍历Dictionary中的所有键字符串。除非我想搜索字典上没有的字符串,否则一切都很好。当我搜索不在Dictionary中的字符串时,我的代码应该再执行一个循环,然后落入if index != patternFromDatabase.count的其他部分,但是它不会,因为patternFromDatabase的枚举计数完成了patternFromDatabase循环。既然我不能只写patternFromDatabase.enumerated() + 1,那么在枚举完成后最后一次循环该怎么办?

你有什么建议吗?或者我应该修改一下我的代码,这样我就不必面对这个问题来达到我的目的了?非常感谢。如果您需要更多的解释,我很乐意为您解释代码。

代码语言:javascript
运行
复制
for (index, key) in patternFromDatabase.enumerated() {

            let startTimeForBitap = Date()

            print("i: \(index), db: \(patternFromDatabase.count), key: \(key)")

            if index != patternFromDatabase.count {

                if Algorithm().searchStringWithBitap(key, pattern: insertedPattern) == -1 {
                    continue

                } else {

                    let endTimeForBitap = Date().timeIntervalSince(startTimeForBitap)
                    bitapRunningTime.text = "\(convertTimetoMS(time: endTimeForBitap)) ms"
                    print("BITAP FOUND: \(endTimeForBitap)")

                    let bitapTextResult = pattern[key]
                    print(bitapTextResult ?? "")
                    bitapTextLabel.text = bitapTextResult
                    bitapPatternLabel.text = key
                    break
                }

            } else {

                let endTimeForBitap = Date().timeIntervalSince(startTimeForBitap)
                bitapTextLabel.text = "Pattern NOT FOUND"
                bitapPatternLabel.text = "Pattern NOT FOUND"

                bitapRunningTime.text = "\(convertTimetoMS(time: endTimeForBitap)) ms"
                print("BITAP NOT FOUND: \(endTimeForBitap)")
            }
        }
EN

Stack Overflow用户

发布于 2017-08-20 08:40:09

Swift 3.0

// asssyme haveResult表示结果不理想

代码语言:javascript
运行
复制
  // if you need one more loop even if he get result you can use same way


        let dict = ["c": 123, "d": 045, "a": 456]

        for (index, entry) in dict.enumerated() {

            if index ==  dict.count-1 {  // Last loop

                if  !haveResult {
                    // make external call

                }
            }
        }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45779857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档