首页 > 解决方案 > 导致表达式类型的简单函数在没有更多上下文的情况下不明确 - SwiftUI

问题描述

这个函数应该只是得到一个子字符串,但我似乎不太明白。

我已经尝试了几乎所有类型的组合,但似乎没有任何效果

导致错误的代码:

let final = temp.substring(with: 9..<11)

所有功能代码:

func decodeInput(update: String) -> String {
    var temp = String(describing: update)
    
    
    let final = temp.substring(with: 9..<11)
    
    return String(temp)
}

标签: arraysswift

解决方案


这是因为字符串集合不是按整数索引的。您需要使用 String.Index 代替。您还应该确保您的字符串至少包含 11 个字符,并在返回结果时使用 final 而不是 temp。不推荐使用带有范围的 Btw 子字符串,您应该使用下标:

func decodeInput(update: String) -> String? {
    guard update.count > 10 else { return nil }
    let start = update.index(update.startIndex, offsetBy: 9)
    let end = update.index(start, offsetBy: 2)
    return String(update[start..<end])
}

推荐阅读