我已经尝试过了:
var newArray = oldArray.map
{
Character($0)
}
其中oldArray是类型为[Any]的数组。但是,插入该代码时出现错误。还有其他选择吗?
答案 0 :(得分:2)
Any
无法直接转换为Character
,但需要先将其转换为String
(从中转换(字符串中的第一个字符)是一个简单的任务) Character
:
let arr: [Any] = ["k", "n"]
let newArr = arr.flatMap { ($0 as? String)?.characters.first }
print(newArr, type(of: newArr)) // ["k", "n"] Array<Character>
答案 1 :(得分:0)
如果oldArray包含Character类型的对象:
var oldArray:[Any] = []
....
var newArray = oldArray.map {
$0 as! Character
}
以这种方式编译,但你可以根据存储在oldArray中的值获得运行时异常。