一尘不染

仅在右侧不为零时执行分配

swift

如果右侧不为零,是否有可能仅执行分配(例如,分配给非可选属性)?我正在寻找一种形式的表格:

if let unwrapped = funcThatReturnsOptional() {
    object.nonOptionalProperty = unwrapped
}

阅读 175

收藏
2020-07-07

共1个答案

一尘不染

与您的代码具有相同效果的单个表达式是

funcThatReturnsOptional().map { object.nonOptionalProperty = $0 }

但是您的代码绝对具有更好的可读性。

在此使用的map()方法,Optional并且仅当函数不返回时才执行闭包nil

2020-07-07