所以我没有想到在Swift中使用1个衬里来跟随语法,这让我疯狂:
if lastProfile == nil || lastProfile.id == profile.id {
useProfile(profile)
lastProfile = profile
}
现在看到我可以链接它,但我仍然最终得到2-3个ifs。我可以把它打包出去然后我再次以2-3 ifs结束......是否可以一举做到这一点?
编辑:
我的同事找到了另一种选择(虽然我们同意丑陋):
if !(latestProfile != nil && latestProfile!.voiceId != profile.voiceId) {
}
有比上面更好的方法吗?
答案 0 :(得分:1)
解决方案仅仅是?
:
if lastProfile == nil || lastProfile?.id == profile.id {
print("true")
lastProfile = profile
}
当lastProfile为nil或者lastProfile和profile具有相同的id时,将打印“true”。否则它什么都不打印。
答案 1 :(得分:0)
如果将lastProfile
声明为let lastProfile: Profile? = ...
,并且例如将id声明为可选,则可以将其用作:
if let lastProfileId = lastProfile?.id {
// lastProfile is not nil and id is not nil
}
else {
// lastProfile is nil or lastProfile.id is nil
}
它被称为可选链接,你可以在swift docs上阅读它。
答案 2 :(得分:-1)
if let recentProfile = latestProfile where recentProfile.voieId != profile.voiceId {
useProfile(profile)
lastProfile = profile
}