创建非可选的防范措施以测试防护条件[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建非可选的防范措施以测试防护条件[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我目前有这样的功能......
// this is a property
var currentString: String = ""
func doSomething()
let newString: String = goGetANewString()
guard newString != currentString else
return
currentString = newString
但我发现我在newString
之外创建guard
有点奇怪。
如果我把它移到guard
然后它抱怨它需要是可选的。
有没有办法在newString
声明中创建guard
并检查条件?
理想情况下,我喜欢这样的东西,但就像我说的那样,它不会这样。
func doSomething()
guard let newString: String = goGetANewString(), newString != currentString else
return
currentString = newString
答案
“技巧”是使用guard case
和value-binding pattern进行分配:
func doSomething()
guard case let newString = goGetANewString(), newString != currentString else
return
currentString = newString
另一答案
在展开可选值时使用Guard let。你的不是可选的。
func doSomething()
let newString: String = goGetANewString()
if newstring != currentstring
currentstring = newstring
应该工作正常。
以上是关于创建非可选的防范措施以测试防护条件[重复]的主要内容,如果未能解决你的问题,请参考以下文章