iT邦幫忙

2022 iThome 鐵人賽

DAY 4
1

前言

今天會進入constructor的章節,constructor是一種dart 類別裡特殊的method,當物件建立時constructor會自動被呼叫,constructor就像是function但只是它並沒有return type.

Using this in a constructor

dart提供方便的捷徑去指派在constructor裡面屬性的值,當宣告constructor時可以使用this.propertyName

class MyColor {
  int red;
  int green;
  int blue;

  MyColor(this.red, this.green, this.blue);
}

final color = MyColor(80, 80, 128);

第二種寫法用required來避免指派null值,當然你也可以使用預設值避免空的值

class MyColor {
  ...

  MyColor({required this.red, required this.green, required this.blue});
}

final color = MyColor(red: 80, green: 80, blue: 80);

Initializer lists

Initializer lists可以在constructor body執行前指派屬性的值到新的實作變數,Initializer lists非常方便,尤其是你要設定final變數時但那個變數卻不是編譯時常數。

main() {
  final rectangle = Rectangle(2, 5);
}

class Rectangle {
  final int width;
  final int height;
  final int area;
  
  矩形的面積會在Rectangle被創建時利用輸入的width和height被一起建立出來
  Rectangle(this.width, this.height) 
    : area = width * height {
      print(area);
    }
}

在flutter裡會很常使用到constructor的用法,我覺得dart真的給了很多很方便而且適合撰寫App的語法,如果大家對App前端有興趣也可以一起加入研究dart和flutter的行列

參考資料:
https://dart.dev/codelabs/dart-cheatsheet#initializer-lists
https://www.bezkoder.com/dart-flutter-constructors/
https://flutterbyexample.com/lesson/initializer-lists-and-final-properties


上一篇
dart&flutter學習之旅-Day03
下一篇
dart&flutter學習之旅-Day05
系列文
dart&flutter學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言