Dart語言入門學習-泛型和庫(六)

泛型
對於 List 或 Set 只需要在聲明語句前加 前綴, 對於 Map 只需要在聲明語句前加 <keyType, valueType> 前綴

  var names = <String>['Seth', 'Kathy', 'Lars'];//list類型
  var uniqueNames = <String>{'Seth', 'Kathy', 'Lars'};//set類型
  var pages = <String, String>{//map類型
    'index.html': 'Homepage',
    'robots.txt': 'Hints for web robots',
    'humans.txt': 'We are people, not machines'
  };

庫和可見性
以下劃線 (_) 開頭的標識符僅在庫內可見。如果導入兩個存在衝突標識符的庫, 則可以爲這兩個庫或者其中一個指定前綴。 例如,如果 library1 和 library2 都有一個 Element 類, 那麼可以通過下面的方式處理:

import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;

// 使用 lib1 中的 Element。
Element element1 = Element();

// 使用 lib2 中的 Element。
lib2.Element element2 = lib2.Element();

如果只使用庫的一部分功能,可以選擇需要導入的內容

// Import only foo.
import 'package:lib1/lib1.dart' show foo;

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

延遲加載庫
要延遲加載一個庫,需要先使用 deferred as 來導入:

import 'package:greetings/hello.dart' deferred as hello;

當需要使用的時候,使用庫標識符調用 loadLibrary() 函數來加載庫:

Future greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}

Dart 隱含的把 loadLibrary() 函數導入到使用 deferred as 的命名空間 中。 loadLibrary() 方法返回一個 Future。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章