小工具知识网

当前位置: 首页 > 行业知识 > Flutter学习7 - Dart 泛型

行业知识

Flutter学习7 - Dart 泛型

2026-10-25 22:18:00 来源:互联网转载

1、泛型类

//泛型类class Cache {  final Map _cache = {};  void saveData(String key, T value) {    _cache[key] = value;  }  //泛型方法  T? getData(String key) {    return _cache[key];  }}
void main() {  Cache cache1 = Cache();  const String name1 = "Leon";  cache1.saveData(name1, 18);  print("name: $name1   age: ${cache1.getData(name1)}"); //name: leon   age: 18  Cache cache2 = Cache();  const String name2 = "Alice";  cache2.saveData(name2, "woman");  print("name: $name2  sex: ${cache2.getData(name2)}"); //name: Alice  sex: woman}

2、泛型约束

class Person {  String? name;  int? age;  Person(this.name, this.age);  void display() {    print("name: $name   age: $age");  }}
class Student extends Person {  String? _school;  Student(name, age, this._school) : super(name, age);  @override  void display() {    print("name: $name   age: $age  school: $_school");  }}
//泛型约束:T 只能是 Person 的子类class Member {  T? _person;  Member(this._person);  void show() {    if (_person != null) {      _person!.display();    }  }}
void main() {  Member member = Member(Student("Leon", 18, "hafo"));  member.show(); //name: Leon   age: 18  school: hafo}

3、补充:Flutter 的一些编程技巧

(1)空安全

//安全调用void safeUse() {  List? list;  print("list: ${list?.length}"); //list: null}

(2)默认值

//默认值void defaultUse() {  bool? isOpen;  //默认值  String result = '';  if (isOpen ?? false) {    //isOpen == true    result = '打开';  } else {    //isOpen == false || isOpen == null    result = '关闭';  }  print("result: $result"); //关闭}

(3)集合判空

//集合判空void emptyUse() {  List list = [];  list.add(0);  list.add('');  list.add(null);  list.add(true);  for (int i = 0; i                                                 

上一篇:RabbitMQ在Java中的完美实现:从入门到精通

下一篇:消防电话主机线路图怎么看图解