第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么可選常量不會自動具有默認值nil

為什么可選常量不會自動具有默認值nil

慕妹3146593 2019-12-06 12:36:34
下面的代碼工作正常struct carConfi {    var owner: String?    let brand: String = "BMW"    var currentMile: Double = 2000}let tomCar = carConfi()但是,如果我將屬性的類型更改owner為常量,則初始化器會出現(xiàn)錯誤struct carConfi {        let owner: String? // Change to constant        let brand: String = "BMW"        var currentMile: Double = 2000    }let tomCar = carConfi() //error: missing argument for parameter 'owner' in call 我做了一點搜索,結果發(fā)現(xiàn)這是因為可選變量自動具有默認值nil我猜:因為一旦設置了常量,就無法對其進行更改,如果自動接收到可選常量,nil那么它將保持為不可更改nil,這是非常愚蠢的,并且可能會對用戶不利。問題:我的大學并沒有完全相信這個猜測,他告訴我一定有更多的理由。如果有人可以向我解釋,我將不勝感激謝謝
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

沒有使用以下任何一個設置只讀(常量)字段:


初始化表達式

初始化器

幾乎可以肯定地表明您的程序有錯誤。


由于您沒有其他機會設置let字段的值,因此該字段的值將保持不變nil(或其他一些默認值)。程序員不太可能會發(fā)現(xiàn)這種行為是可取的,并有意地請求它。


這就是為什么Swift將這種情況標記為錯誤。另一方面,如果您實際上希望String常量保持不變nil,則可以添加一個表達式以將其設置為nil,并使錯誤靜音:


let owner: String? = nil // Pretty useless, but allowed


查看完整回答
反對 回復 2019-12-06
?
慕蓋茨4494581

TA貢獻1850條經(jīng)驗 獲得超11個贊

常數(shù)只能設置一次,并且只能設置一次。如果您希望它為null或0,則將其設置。您總是在初始化時定義一個常量。


查看完整回答
反對 回復 2019-12-06
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

對于某些初始值設定項設置值,而對于其他初始值設定項則忽略該屬性(并將其設置為默認值),似乎并不合理nil。提到的let owner: String? = nil也不允許這種行為。

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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號