狠狠撸

狠狠撸Share a Scribd company logo
Weizhong Yang a.k.a zonble
zonble@gmail.com
Dart 的 Null Safety
Flutter 2.0 != Null Safety
? 啟? Flutter 2.0 並不會預設開啟 Null Safety

? 需要將 Dart 語?版本升級到 2.12 之後

? 修改 pubspec.yaml,將 environment -> SDK 改成 ">=2.1.0 <3.0.0”

? 由於?前還有很多 dependencies 還沒升級 Null Safety,要將原本的專案改成
?援 Null Safety 還有困難
什麼是 Null Safety?
? 其實會寫 Swift 就?定知道

? 不能將任意變數指向 null

? 新?代語?都有這項特性:Swift、Rust、Kotlin、C#、TypeScript

? 對 iOS ?程師來說,我們關?的是與 Swift 不同的部分
这些都?样
? 是 operator 的
?部分
? 是 operator ?不是變數的?部分
在 Swift 像是這樣
? 是 operator ?不是變數的?部分
在 Dart 像是這樣
Array/List 語法
Dictionary/Map 語法
Unwrap
Unwrap
if let、guard let?
? 在 Swift 中,我們使? if let、guard let、if case let …等語法,從 nullable 變數
中取值

? 在 Dart 中,直接? if (v == null) 或 if (v != null) 即可
使? != null 來 unwrap
反过来也是可以的
但是这样不?
Dart 可以推導某些變數?定不是 null
建构物件的参数
Swift 要寫在 init 裡头
Dart 裡头這樣寫
@required 被換成 required
以前 @requried 需要另外 import meta,現在不?
匿名函式
Function
在 Swift 裡头
Function
在 Dart 裡头
有時候可能出現
連續的問號
搭配 generics,有時候不是很好懂…會出現多個問號
不過,? 是 Operator 的?部分
呼叫的時候並沒有特別難?(還記得 Swift 的 double optional?)
Dart 本?的特殊
語法
?.. 語法,??個問號就可以了
對 Array 使?的 … 與 …? 語法

More Related Content

Dart null safety