let stringarr = ["1","foo","0","bar","100"]
let res = stringarr.map{ Int($0) }.enumerate().flatMap { (i,j) -> (Int,String,Int)? in
guard let value = j else {
return nil
}
return (i, stringarr[i],value)
}
// now i have an access to (index in orig [String], String, Int) without any optionals and / or default values
print(res)
// [(0, "1", 1), (2, "0", 0), (4, "100", 100)]
4条答案
按热度按时间ne5o7dgx1#
使用
map
函数在
UIViewController
之类的类中使用如果数组包含不同的类型,您可以使用
flatMap
(Swift 2)或compactMap
(Swift 4.1+)来仅考虑可转换为Int
的项up9lanfz2#
雨燕4、5
使用compactMap并强制转换为Int,解决方案不带“!”。
js4nwp543#
雨燕4、5
如果你想把字符串数字转换成int类型的数组(在一个我曾经经历过的特殊情况下),最快的方法是:
而对于你的问题是:
7gs2gvoe4#
我建议用一种不同的方法