Dart 2ベース(9)-パンチング
目次
なぜ汎型を使うのですか?
セットの種類
パラメータの種類を制限する
汎型(Generaics)は<…>を用いて定義される.
型式変数は、Dart 2でE、T、K、Vを使用して宣言されます.例えば、Listなど.はなぜ一般型を使うのですか? 1.汎型タイプを指定して、コードがより安全で、解読しやすいです.
2.泛型を使うとコードの重複も避けられます.は、集合タイプ のために使用される.
汎型はListとMapの直接パラメータ化に利用でき,また構造関数によるパラメータ化も可能である.
Dart 2の一般的なタイプは具体化されています.これは運転中に自分のタイプの情報を持っているということです.汎型パラメータタイプを制限する 汎型を実装する場合、そのパラメータの種類を制限する必要があるなら、
以下は公式サイトの例です.
なぜ汎型を使うのですか?
セットの種類
パラメータの種類を制限する
汎型(Generaics)は<…>を用いて定義される.
型式変数は、Dart 2でE、T、K、Vを使用して宣言されます.例えば、Listなど.
2.泛型を使うとコードの重複も避けられます.
//
abstract class ObjectCache {
Object getByKey(String key);
void setByKey(String key, Object value);
}
abstract class StringCache {
String getByKey(String key);
void setByKey(String key, String value);
}
// ,
abstract class Cache {
T getByKey(String key);
void setByKey(String key, T value);
}
main(List args) {
// String , String list,
List strList = List();
strList.add("a");
strList.add(1); //
}
汎型はListとMapの直接パラメータ化に利用でき,また構造関数によるパラメータ化も可能である.
Dart 2の一般的なタイプは具体化されています.これは運転中に自分のタイプの情報を持っているということです.
main(List args) {
//
var animals = ["cat", "dog"];
var animalMap = {
"cat": "tom",
"dog": "jerry"
};
//
var animalList = List();
var animalMap2 = Map();
animalList.addAll(['bird', 'dog']);
// set ,
var animalSet = Set.from(animalList);
//
print(animalList is List); // true
}
extends
キーワードを使用することができる.以下は公式サイトの例です.
// T SomeBaseClass
class Foo {...}
class Extender extends SomeBaseClass {...}
void main() {
// SomeBaseClass Extender
var someBaseClassFoo = new Foo();
var extenderFoo = new Foo();
//
var foo = new Foo();
// SomeBaseClass , warn, , 。
// var objectFoo = new Foo