Dart学习笔记(九)

161 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Dart 闭包

闭包:

  1. 全局变量特点: 全局变量常驻内存
  2. 局部变量的特点: 不常驻内存会被垃圾机制回收、不会污染全局

想实现的功能:

  1. 常驻内存
  2. 不污染全局

闭包: 函数嵌套函数,内部函数会调用外部函数的变量或参数,变量或参数不会被系统回收(不会释放内存)

闭包的写法: 函数嵌套函数,并return里面的函数,这样就形成了闭包

// 全局变量
 
var a = 123;
 
void main() {
 
   print(a); // 123
 
   fn() {
 
     a++;
 
     print(a);
 
   }
 
   fn(); // 124
 
   fn(); // 125
 
   fn(); // 126
 
 
  printInfo() {
 
    // 局部变量
 
    var num = 123;
 
    num++;
 
    print(num);
 
  }
 
 
 
  printInfo(); // 124
 
  printInfo(); // 124
 
  printInfo(); // 124
 
 
 
  // 闭包
 
  fn() {
 
    var a = 123;
 
    return () {
 
      a++;
 
      print(a);
 
    };
 
  }
 
  var b = fn();
 
  b(); // 124
 
  b(); // 125
 
  b(); // 126
 
}

Dart 面向对象的介绍 以及Dart内置对象

面向对象编程(OOP)的三个基本特征是:封装、继承、多态

  • 封装:封装是对象和类概念的主要特性。封装,把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象调用, 而一部分属性和方法则隐藏。
  • 继承:面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
  • 多态:允许将子类类型的指针赋值给父类类型的指针, 同一个函数调用会有不同的执行效

Dart所有的东西都是对象,所有的对象都继承自Object类。

Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类

一个类通常由属性和方法组成。

void main() {
 
  // List list=new List();  //最新版本的dart中已没法使用
 
  // list.isEmpty;
 
  // list.add('香蕉');
 
  // list.add('香蕉1');
 
 
 
  Map m = new Map();
 
  m["username"] = "张三";
 
  m.addAll({"age": 20});
 
  m.isEmpty;
  
  print(m); // {username: 张三, age: 20}
 
 
 
 
  Object a = 123;
 
  Object v = true;
 
  print(a); // 123
 
  print(v); // true
 
}