关于swift的guard使用一定要慎用
很久沒有更新博客,因為換了工作環境,適應了一段時間,哎,年齡大了就是這樣,適應一件事要花很多時間,不過不管怎么說,過程雖然磕磕絆絆,但總的來說還是美好的。額,閑話不多說,來看看今天要嘮的話題是什么。
進入新的工作環境后,iOS的編寫已經從oc過渡到swift,因為常年使用oc,所以老實說,在使用swift的過程中遇到了許許多多奇葩的問題,今天要說的就是問題之一,盡管看起來很弱智的問題,但是我確實做到了。
swift新推出的guard關鍵字,直譯為保護,幫助保護不安全的解包,防止強制解包導致程序crash,剛開始使用的時候,真的是非常爽,比如這個樣子。
一旦提取的object不符合條件要求,這個方法就會直接return不會向下進行,如果符合要求,程序就會繼續向下運行,而且,敲黑板了,data的使用區域不受guard括號的范圍限制,這是與if判斷不同的,上代碼。
使用if判斷保護的變量,使用返回僅限于if的括號范圍內,這就導致使用這個變量的代碼,只能寫在if括號范圍之內,十分不方便,也不夠優美。對,不夠優美,但這并不表示可以隨便使用guard這個關鍵字,因為,因為....上代碼。
在for,while,do-while等循環語句中使用guard,一旦變量不存在,就會直接跳出函數方法,導致剩下循環沒辦法進行,當程序使用數組的時候,容易造成數組越界,從而發生crash,這個問題很低級,但是我確實腦抽的發生了,造成很嚴重的后果,所以,寫這邊博客,一是記錄一下自己的錯誤,二是提醒其他iOS開發者,盡量避免與我同樣的錯誤。
最后祝大家永無bug!!!!
總結
以上是生活随笔為你收集整理的关于swift的guard使用一定要慎用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 明日之后潜水推进器怎么做
- 下一篇: Oracle排名函数(Rank)实例详解