flutter 学习笔记-1

flutter 架构

Embedder 操作系统适配层,实现渲染surface设置,线程设置及平台插件的适配
Engine主要包含skia Dart Text,实现渲染引擎,文字排版,事件处理,Dart运行时等功能。
FrameWork层是一个用Dark实现的UI sdk 包含动画,图形绘制,手势识别等功能。

flutter 计时器demo

工程结构
android:包含Android特定子工程
build:编译文件
ios:
lib
main.dart 运行入口文件
test
flutter_app_demo.iml
pubspec.lock
pubspec.yaml 管理第三方库及资源配置文件

flutter 一切核心皆widget

Dart

1.var 变量

未初始化的变量null

2.基本数据类型:

num bool string list map

num的子类: int, double-int

bool

string utf-16的字符串

list 数组对象

var arr = ["2","3","4"];
var arr = List.of([1,2,3]);
arr.forEach((v)=> print('${v}'));

map

	var map1 = {"name":"lishan"};
	map[name] = "haha";
	map.forEach((k,v)=> print('${k}:${v}')); 

 ///Map遍历
    ages.forEach((k, v) {
      print('$k $v');
    });
    Map ages2 = ages.map((k, v) {
      //迭代生成一个新Map
      return MapEntry(v, k);
    });
    print(ages2);
    for (var key in ages.keys) {
      print('$key ${ages[key]}');
    }

const

final

在 Dart 中,所有类型都是对象类型,都继承自顶层类型 Object,因此一切变量都是对象,数字、布尔值、函数和 null 也概莫能外;

函数

如果函数体只有一行表达式,
bool isZero(int number) => number == 0;

不支持重载
给参数增加{},以 paramName: value 方式指定调用参数,也就是可选命名参数;
给参数增加 [],则意味着这些参数是可以忽略的,也就是可选参数。

要达到可选命名参数的用法,那就在定义函数的时候给参数加上 {}
void enable1Flags({bool bold, bool hidden}) =>print("$bold , $hidden");

//定义可选命名参数时增加默认值
void enable2Flags({bool bold = true, bool hidden = false}) => print(“ b o l d , bold , bold,hidden”);
//可忽略的参数在函数定义时用[]符号指定
void enable3Flags(bool bold, [bool hidden]) => print(“ b o l d , bold , bold,hidden”);
//定义可忽略参数时增加默认值
void enable4Flags(bool bold, [bool hidden = false]) => print(“ b o l d , bold , bold,hidden”);

Dart 中并没有 public、protected、private 这些关键字,我们只要在声明变量与方法时,在前面加上" _ “即可作为 private 方法使用。如果不加” _ ",则默认为 public。不过,“_”的限制范围并不是类访问级别的,而是库访问级别。

继承 接口

运算符

?.  p?.print()     p is null skip
??=  a??=value a 为null 则给a 赋值
?? (a!=null)? a:b 

继承 :继承父类意味着,子类由父类派生,会自动获取父类的成员变量和方法实现,子类可以根据需要覆写构造函数及父类方法;
接口:接口实现则意味着,子类获取到的仅仅是接口的成员变量符号和方法符号,需要重新实现成员变量,以及方法的声明和初始化,否则编译器会报错。

mixin(混入)–with

类似多继承
避免继承歧义问题,

class Coordiate with Point{

}

var yy = Coordiate();
print(yy is Point);

运算符
可以覆写或者自定义运算符

你可能感兴趣的:(Flutter,flutter)