Swift 以字符串形式获取可选数组的计数,或nil
我试图将可选数组的计数作为字符串获取,如果数组为nil,则为nil 这项工作:Swift 以字符串形式获取可选数组的计数,或nil,swift,Swift,我试图将可选数组的计数作为字符串获取,如果数组为nil,则为nil 这项工作: let array: [AnyObject]? = ... textLabel.text = (array != nil ? String((array?.count)!) : nil) 但这看起来很可笑。有没有更好的方法来写这个(仍然是一行) Edit:例如,我希望文本是“3”而不是“可选(3)” 在目标C中,这可能是(array?[@(array.count)stringValue]:nil)只需执行以下操作
let array: [AnyObject]? = ...
textLabel.text = (array != nil ? String((array?.count)!) : nil)
但这看起来很可笑。有没有更好的方法来写这个(仍然是一行)
Edit:例如,我希望文本是“3
”而不是“可选(3)
”
在目标C中,这可能是(array?[@(array.count)stringValue]:nil)
只需执行以下操作:
textLabel.text = array?.count.flatMap { String($0} }
在可选项上的flatMap
将返回nil(如果可选项为nil)或运行闭包并将可选项作为参数传递的结果
编辑以显示评论中的其他可能答案-jrc
-array.map{String($0.count)}
-(数组?.count).map{String($0)}
textLabel.text = array?.count.flatMap { String($0} }
在可选项上的flatMap
将返回nil(如果可选项为nil)或运行闭包并将可选项作为参数传递的结果
编辑以显示评论中的其他可能答案-jrc
-array.map{String($0.count)}
-(数组?.count).map{String($0)}
类型'Int'的值没有成员'flatMap'
在count
上。他的array
实际上是可选的,所以array.map()的意思是可选的。map不是array.map?无论如何,它在操场上对我很有效。出于我不知道的原因,你需要括号:(array?.count)。flatMap{String($0)}
(和map()
)也可以,在这种情况下没有区别,因为闭包不返回可选项)。谢谢大家(array?.count).map{String($0)}
可以工作,甚至可读。更好的是,只需使用map:array.map{String($0.count)}嗯,我得到的类型'Int'的值在count
上没有成员'flatMap'。他的数组
实际上是可选的,所以array.map()的意思是可选的。map不是array.map,不是吗?无论如何,它在操场上对我很有效。出于我不知道的原因,你需要括号:(array?.count)。flatMap{String($0)}
(和map()
)也可以,在这种情况下没有区别,因为闭包不返回可选项)。谢谢大家<代码>(数组?.count).map{String($0)}
可以工作,甚至可以读取。