為什么我按視頻中的方法,自定義多個(gè)構(gòu)造方法,卻出錯(cuò)呢?Dart版本問(wèn)題?
通過(guò)試驗(yàn),發(fā)現(xiàn)只要對(duì)象中定義了final屬性,在定義多個(gè)命名對(duì)象的時(shí)候,每次都必須要對(duì)final屬性進(jìn)行定義,否則會(huì)出錯(cuò)。
以下是我改進(jìn)過(guò)的,完全正確。
可是我百思不得其解的是,老師在視頻中的,為啥能夠正常運(yùn)行呢?
可是我百思不得其解的是,老師在視頻中的,為啥能夠正常運(yùn)行呢?
2024-01-17
目前新版本還需要處理變量的非空定義。
2019-05-29
很高興回答您的問(wèn)題? 經(jīng)過(guò)github查找 確實(shí)是版本問(wèn)題? 在2.3版本中 添加了對(duì) 含有 final關(guān)鍵字 屬性的初始化校驗(yàn) 意思就是? 如果類中的屬性 被標(biāo)記為 final 那這個(gè)屬性必須初始化值 不然無(wú)法編譯通過(guò) 我是基于這個(gè)地址?https://github.com/dart-lang/sdk/commit/f8a96b88e9d52ac5cbbdc639d326e7a4baba3842 和以往編程語(yǔ)言對(duì)final 的定義 推斷出來(lái)的? ?這也就解釋了你之前的實(shí)驗(yàn) 關(guān)鍵一點(diǎn)就是 含有final 屬性的字段 必須在 構(gòu)造之前初始化? 目前我已知的有兩種方式 一 是 屬性聲明時(shí)初始化 如 final String workType = "XXX" ;? ?這樣 你在定義其他構(gòu)造函數(shù)時(shí) 就無(wú)需添加 this.workType 了 另一種就是哥們你最后寫的那樣 使用語(yǔ)法糖 在構(gòu)造函數(shù)中 寫his.workType? 這倆都是在調(diào)用構(gòu)造函數(shù)之前 對(duì) workType進(jìn)行初始化 不知是否解決您的疑問(wèn)哈