将 [Int?] 转换为 [Int]
Converting [Int?] to [Int]
我有一个 String
,例如"7,8,9,10"
,我想将其转换为 Int
项的数组,即 [Int]
但是,我的代码目前给了我一个 [Int?]
(可选整数数组)。这是代码:
let years = (item["years"] as! String)
.componentsSeparatedByString(",")
.map { word in Int(word) }
我尝试了一些方法,例如将 Int(word)
更改为 Int(word!)
,并将 !
添加到 String)
的末尾,但 swift 没有不喜欢这些想法的外观。
我认为作为初学者我做错了什么很明显,但我不太确定是什么!任何帮助将不胜感激 - 谢谢!
将可选数组转换为非可选数组的经典方法是 flatMap { [=10=] }
:
let years = ...map { word in Int(word) }.flatMap { [=11=] }
纯Swift解决方案,没有基金会的帮助
let arr = "7,8,9,10".characters.split(",").flatMap{ Int(String([=10=])) }
print(arr) // [7, 8, 9, 10]
我有一个 String
,例如"7,8,9,10"
,我想将其转换为 Int
项的数组,即 [Int]
但是,我的代码目前给了我一个 [Int?]
(可选整数数组)。这是代码:
let years = (item["years"] as! String)
.componentsSeparatedByString(",")
.map { word in Int(word) }
我尝试了一些方法,例如将 Int(word)
更改为 Int(word!)
,并将 !
添加到 String)
的末尾,但 swift 没有不喜欢这些想法的外观。
我认为作为初学者我做错了什么很明显,但我不太确定是什么!任何帮助将不胜感激 - 谢谢!
将可选数组转换为非可选数组的经典方法是 flatMap { [=10=] }
:
let years = ...map { word in Int(word) }.flatMap { [=11=] }
纯Swift解决方案,没有基金会的帮助
let arr = "7,8,9,10".characters.split(",").flatMap{ Int(String([=10=])) }
print(arr) // [7, 8, 9, 10]