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

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我按視頻中的方法,自定義多個構造方法,卻出錯呢?Dart版本問題?

https://img2.sycdn.imooc.com/5ced377f000116db08390889.jpg


通過試驗,發現只要對象中定義了final屬性,在定義多個命名對象的時候,每次都必須要對final屬性進行定義,否則會出錯。

https://img1.sycdn.imooc.com/5ced38610001069508520776.jpg


以下是我改進過的,完全正確。

https://img1.sycdn.imooc.com//5ced3b9b0001aeb606150784.jpg

可是我百思不得其解的是,老師在視頻中的,為啥能夠正常運行呢?

可是我百思不得其解的是,老師在視頻中的,為啥能夠正常運行呢?

https://img1.sycdn.imooc.com//5ced38fa0001737c14590912.jpg

正在回答

2 回答

https://img1.sycdn.imooc.com/65a749b000014e1510721756.jpg

目前新版本還需要處理變量的非空定義。

0 回復 有任何疑惑可以回復我~

很高興回答您的問題? 經過github查找 確實是版本問題? 在2.3版本中 添加了對 含有 final關鍵字 屬性的初始化校驗 意思就是? 如果類中的屬性 被標記為 final 那這個屬性必須初始化值 不然無法編譯通過 我是基于這個地址?https://github.com/dart-lang/sdk/commit/f8a96b88e9d52ac5cbbdc639d326e7a4baba3842 和以往編程語言對final 的定義 推斷出來的? ?這也就解釋了你之前的實驗 關鍵一點就是 含有final 屬性的字段 必須在 構造之前初始化? 目前我已知的有兩種方式 一 是 屬性聲明時初始化 如 final String workType = "XXX" ;? ?這樣 你在定義其他構造函數時 就無需添加 this.workType 了 另一種就是哥們你最后寫的那樣 使用語法糖 在構造函數中 寫his.workType? 這倆都是在調用構造函數之前 對 workType進行初始化 不知是否解決您的疑問哈

4 回復 有任何疑惑可以回復我~
#1

weixin_寶慕林1158390

正解,如果聲明時沒有對final初始化,再所有的構造方法中的語法糖都得對此屬性賦值
2021-09-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我按視頻中的方法,自定義多個構造方法,卻出錯呢?Dart版本問題?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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