Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 以字符串形式获取可选数组的计数,或nil_Swift - Fatal编程技术网

Swift 以字符串形式获取可选数组的计数,或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)只需执行以下操作

我试图将可选数组的计数作为字符串获取,如果数组为nil,则为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)}
    -

听起来像是可选链接到mesounds就像可选链接到Meen更好,只要使用map:array.map{String($0.count)}嗯,我得到
类型'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)}
可以工作,甚至可以读取。