Man*_*uel 5 arrays conditional-statements swift
给定一个数组
let array: [Int]
Run Code Online (Sandbox Code Playgroud)
和一个变量
let addElement: Bool
Run Code Online (Sandbox Code Playgroud)
是否可以仅在addElement使用内联语法为 true 时有条件地添加元素?
以下工作:
let addElement = false
let array = [0, 1, addElement ? 2 : nil] //[0, 1, nil]
Run Code Online (Sandbox Code Playgroud)
但是根本不应该有元素,而不仅仅是一个nil值。可以像上面的例子那样内联编写吗?
如果你想要内联,你可以使用compactMap删除nil元素:
let addElement = false
let array = [0, 1, addElement ? 2 : nil].compactMap { $0 } //[0, 1]
Run Code Online (Sandbox Code Playgroud)
这样做的优点是您可以在数组中的任何位置插入可选元素:
let addElement = true
let array = [0, addElement ? 2 : nil, 1].compactMap { $0 } //[0, 2, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |