arrays - 导致表达式类型的简单函数在没有更多上下文的情况下不明确 - 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)
}
解决方案
这是因为字符串集合不是按整数索引的。您需要使用 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])
}
推荐阅读
- sql-server - 使用 OPENROWSET 从文件执行 SQL 查询的问题
- c++ - 将用户输入与结构数组中的值进行比较
- c++ - Visual Studio 试图打开不再在项目中的源文件(致命错误 C1083)
- linux - 在shell脚本的while循环中执行sqlplus时控制不返回UNIX
- graphql - 条件流问题取决于使用 Auth0 和 GraphQL 身份验证的对象属性
- c - 了解推送功能
- python - 用理论最小值/最大值替换数据框中的异常值
- javascript - 在事件处理程序中从 localStorage 获取数据时不呈现组件
- git - 我怎么知道分支合并到哪里?
- amazon-web-services - ECS 服务发现 DNS 更新延迟较大