多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
- 变量声明: ~~~ var name="张三"; 不指定类型 函数类使用 dynamic name="11"; 不确定具体类型时候用 String name = 'bob'; 指定具体类型 var name; 没有赋值情况下,所有类型都是null 变量作用域在{}中确定,层级越深作用域越小,函数外的作用域很大 final name="11"; 只能赋值一次,内容不会改变 const pi=3.14; 编译时候的常量 ~~~ - 数据类型,基本类型有数字,字符,布尔 ~~~ int a=1; 整型 double b=1.01 双精度浮点数 num c=1.1 同时支持整型和浮点 方法或属性 isEven 是否偶数 isOdd 是否奇数 字符串可以是单引号或双引号,变量可以$name替换,表达式${}替换,拼接字符串用+,多行使用'''或""" String name= 'Hi ${name.toUpperCase()}'; String name='''你好 世界'''; 属性或方法 length 长度 isEmpty是否为空 布尔 只有true 和false,只有值为true才是真其余都是false; List类型,有序集合其它语言的数组 var a=["a","b"]; 或者 var a=new List();a.add("a"); Set类型,无序集合 var gameSet = {'Halo', 'God of War'}; var a=new Set(); Map类型 var gameMap = {'microsoft': 'Halo', 'sony' :'God of War'}; gameMap["sony"]="1"; ~~~ - 运算符 ~~~ a is String 是否是字符串,判断类型 a is! String 不属于某个类型 name as String 类型转换 var message = input?? 'Hello'; 判断input是否null,不是直接返回input,否则hello person..name = 'bob'..age = 28; 连续操作.. var message; message ??= 'Hello'; 赋值判断是否为null,然后赋值 ~~~ - 定义函数 ~~~ String bobSay(String words) { return 'bob say $words'; } String bobSay2(String words) => 'bob say $words'; //简写 String fn(String a,[String a=1]){}//调用 fn(1,2),第二个可选 String fn({String a,int b=1}){} //调用 fn(a:"aa",b:3) ~~~ - 类 ~~~ class A{ static int a=1; static fn(string w){} a(){ }和类同名函数为构造函数初始化变量,不能有return factory a(){ return } factory修饰的工厂构造函数必须有return } ~~~ 库 ~~~ // 三种形式的库导入 import dart:io; 自带标准库 import '../base.dart'; import 'package:test/test.dart'; ~~~