任意数组到字符数组

Any array to Character array

我已经试过了:

var newArray = oldArray.map
    {
        Character([=10=])
}

其中 oldArray 是类型为 [Any] 的数组。但是,当我插入该代码时出现错误。还有其他选择吗?

如果 oldArray 包含字符类型的对象:

var oldArray:[Any] = []
....
var newArray = oldArray.map {
        [=10=] as! Character
}

这样编译是可以的,但是你可以根据oldArray中存储的值得到运行时异常。

Any 不能直接转换为 Character,需要先转换为 String(从中转换是一个简单的任务(字符串中的第一个字符) 至 Character:

let arr: [Any] = ["k", "n"]
let newArr = arr.flatMap { ([=10=] as? String)?.characters.first }
print(newArr, type(of: newArr)) // ["k", "n"] Array<Character>