swift4 - Swift 4:无法将字符转换为字符串
问题描述
我正在从字符中的数字字符串中提取一个数字,但无法将该字符转换为字符串或 int。这是我的代码:
func processString(_ s: String) ->Bool {
var sum = 0
for char in s{
let number = String(char){ //error Cannot invoke initializer for type 'String' with an argument list of type '(Character, () -> ())'
}
}
}
如果我尝试转换为 Int:
func processString(_ s: String) ->Bool {
var sum = 0
for char in s{
let number = Int(String(char)){ //Cannot invoke initializer for type 'Int' with an argument list of type '(String, () -> ())'
}
}
}
你们中的任何人都知道我做错了什么或者为什么不能将字符转换为字符串或整数?
我会非常感谢你的帮助。
解决方案
那里有一些多余的{ }
括号是不必要的。删除这些应该可以解决编译器问题。
func processString(_ s: String) ->Bool {
var sum = 0
for char in s{
let charString = String(char)
print(charString)
}
}
在下一个示例中,由于 Int(_ string: String) 初始化程序可以返回 nil,因此您可以使用if let
语句来解包结果,这看起来就像您可能尝试使用的那样{ }
它看起来像这样:
func processString(_ s: String) ->Bool {
var sum = 0
for char in s{
if let number = Int(String(char)) {
// number is not nil
}
}
}
推荐阅读
- python - 将 python 列表转换为单项字典列表
- c - 如何在C中的动态数组中迭代动态数组?
- javascript - 这段代码是否会导致我的 mediaelement.js 播放器/播放列表出现 ajax 排序问题?
- r - R基础绘图,排列多个绘图
- dataframe - 如何在 spark-dataframe 的列中分离集合并将值传递给其他列?
- python - NLTK:TypeError:必须是 str,而不是列表
- java - 使用 Maven 构建一个简单的 Graal 原生示例
- java - 这个字符串需要多少份?
- python - 如何为能够包含行号为 1000 的行的支持向量回归模型准备训练集?
- networking - 在同一 Internet 连接上隔离两个网络的最佳方法?