亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么時候我應該將一個可選的值與零進行比較?

什么時候我應該將一個可選的值與零進行比較?

守著星空守著你 2019-07-06 17:34:06
什么時候我應該將一個可選的值與零進行比較?通常,您需要編寫如下代碼:if someOptional != nil {     // do something with the unwrapped someOptional e.g.            someFunction(someOptional!)}這似乎有點冗長,而且我還聽說使用!強制展開操作符可能是不安全的,最好避免。有更好的方法來處理這件事嗎?
查看完整描述

3 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

我認為你應該回到SWIFT編程書,了解這些東西是干什么用的。!在絕對確定可選項不是零時使用。既然你宣稱你是絕對肯定的,如果你錯了,它就會崩潰。完全是故意的。它是“不安全的和最好的避免”,在您的代碼中斷言是“不安全的和最好的避免”。例如:

if someOptional != nil {
    someFunction(someOptional!)}

那個!絕對安全。除非您的代碼有一個很大的錯誤,比如錯誤地編寫(我希望您發現了錯誤)。

if someOptional != nil {
    someFunction(SomeOptional!)}

在這種情況下,您的應用程序可能崩潰,您調查它崩潰的原因,并修復錯誤-這正是崩潰的目的。SWIFT的一個目標是,您的應用程序顯然應該正確工作,但由于SWIFT不能強制執行,它強制您的應用程序要么工作正常,要么崩潰,如果可能的話,所以錯誤會在應用程序發布之前被刪除。


查看完整回答
反對 回復 2019-07-06
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

你有一個辦法。它叫做可選鏈..來自文件:

可選鏈接是用于查詢和調用當前可能為零的可選項的屬性、方法和下標的進程。如果可選項包含值,則屬性、方法或下標調用將成功;如果可選項為零,則屬性、方法或下標調用返回nil。多個查詢可以鏈接在一起,如果鏈中的任何鏈接為零,則整個鏈將優雅地失敗。

下面是一些例子

class Person {
    var residence: Residence?}class Residence {
    var numberOfRooms = 1}let john = Person()if let roomCount = john.residence?.numberOfRooms {
    println("John's residence has \(roomCount) room(s).")} else {
    println("Unable to retrieve the number of rooms.")}// prints "Unable to retrieve the number of rooms."

你可以查看整篇文章這里.


查看完整回答
反對 回復 2019-07-06
  • 3 回答
  • 0 關注
  • 511 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號