Dart:
1.Dart的变量
1.1.var可自动推导变量类型。
1.2.int:数值变量,必须是整型。
1.3.double:数值变量,可以是整形,也可以是浮点型。
1.4.string:字符型变量,输入字符串。
1.5.bool:判断并输出true/false。
1.6.list:数组,为列表对象。
1.7.maps:字典,一个键值对相关对象。
2.Dart变量命名规则
2.1.变量名称必须由数字、字母、下划线和美元符组成。
2.2.标识符开头不能是数字。
2.3.标识符不能是保留词和关键字。
2.4.变量名称区分大小写。
2.5.标识符一定要见名知意。
3.Dart的常量
3.1.const:一开始赋值,不改变。
3.2.final:可以开始不赋值,只赋值一次,为运行时常量,是惰性初始化。
4.Dart运算符
4.1.算数运算符:+、-、* 、/、~/ (取整)、% (取余)。
4.2.关系运算符:==(等于)、!=(不等于)、>、<、>=(大于等于)、<=(小于等于)。
4.3.逻辑运算符:!(取反)、&&(并且)、||(或者)。
4.4.赋值运算符: 基础赋值运算符:=、??=(若为空赋值给它)、 复合赋值运算符:+=、-=、*=、/=、%=、~/=。
5.++(自加)、--(自减)。
5.Dart条件表达式
5.1.if else switch case
5.2.三目运算符
5.3.??运算符
6.Dart类型转换
6.1Number与String之间的转换
6.1.1.Number转换成String:toString()
6.1.22.String转换成Number: parse()
6.2其他类型转换为booleans类型
6.2.1.isEmpty:判断字符串是否为空
7.Dart循环语句
7.1for循环
声明变量
判断
print变量
循环,直到false
7.2.While循环
while(表达式/循环条件){ }
7.3.do While循环
do{ 语句/循环体 }while(表达式/循环条件);
7.4.break和continue
break: (1)用于Switch语句使流程跳出Switch (2)使循环语句跳出循环
continue: 使循环结束,跳过未执行语句
8.list常用属性和方法
8.1常用属性:
length:长度。
reversed:翻转。
isEmpty:是否为空。
isnotEmpty:是否不为空。
8.2常用方法:
add:增加。
addall:拼接数组。
indexof:查找,传入具体值。
remove:删除,传入具体值。
fillRange:修改。
insert(index,value):指定位置插入。
insertAll(index,value):指定位置插入list。
tolist():其他类型转换list。
join():list转换String。
spile():String转换list。
9.map常用属性和方法
9.1.常用属性
key:获取所有的key值。
value:获取所有的value值。
isEmpty:是否为空。
isnotEmpty:是否不为空。
9.2.常用方法
remove:删除指定的key值。
addAll: 合并映射。
containsvalue:查看映射的值,返回true/false。
10.函数
10.1内置函数/方法:print();
10.2.自定义方法:返回类型
方法名称(参数一,参数二...){方法体 return 返回值}
10.3方法的作用域:main外>main里>嵌套
11.面对对象编程的三个基本特征
11.1封装:提高代码的独立性与安全性。把客观事物封装成抽象的类,并把自己的部分属性和方法提供给其他对象。
11.2继承:提高代码复用率,缩短开发时间,减少工作量。可以使用现有类的功能,并可以覆写父类。
11.3多态:实现代码复用。允许将子类类型的指针赋值给父类类型的指针。同一个函数不同效果。
12.闭包
12.1.全局变量特点:全局变量常驻内存,全局变量污染全局。
12.2.局部变量特点:不常驻内存会被垃圾机制回收,不会污染全局。
12.3.函数嵌套函数:内部函数调用外部函数的变量或参数。
13.静态成员
13.1.使用static关键字来实现类级别的变量和函数。
13.2.静态方法不能访问非静态成员,非静态方法可以访问静态成员。
13.3.非静态方法能访问静态成员以及非静态成员。
14.类
14.1.类的继承
14.1.1.子类使用extend来继承父类
14.1.2.子类会继承父类里面可见的属性和方法,但是不会继承构造函数。
14.1.3.子类能复写父类的方法。
14.2多继承mixins
14.2.1.作为mixins的类只能继承的object且不能有构造函数
14.2.2.mixins是一种全新的特性。 3.一个类可以继承多个mixins。
14.3抽象类:
14.3.1.通过abstract定义。
14.3.2.抽象方法不能用abstract声明。
14.3.3.如果子类继承抽象类必须实现抽象方法。
14.3.4.如果把抽象类当做接口实现的话必须实现抽象类里所有的属性和方法。
14.3.5.抽象类不能被实例化。
14.4extend和implement的区别
extend:复用抽象类里的方法,并要用抽象类约束自类。
implement:把抽象类标准化。
15.库
15.1.自定义库:import ‘lib/xx.dart’
15.2.系统内置库
15.3.lab包管理系统中的库:
(1)在项目根目录新建一个pubspet.yaml。
(2)在文件里配置名称、描述及依赖。
(3)下载到本地。
(4)项目引入库,观看文档并使用。
16.接口
16.1用处:
普通类和抽象类都可以作为接口实现,也可使用implement关键字
特:若使用普通类会覆写普通类及抽象类中的属性和方法,建议使用抽象类。
16.2泛型及泛型接口
16.2.1泛型:解决类、接口、方法的复用性,以及对不特定类型的支持。
16.2.2.泛型接口:
(1)实现数据缓存功能(文件缓存和内容缓存),按照接口约束实现
(2)子类必须有getBykey(key)和setBykey(key)
(3)setBykey的value类型和实例化子类指定类型一致。
16.2.3api接口
创建Httpclient对象。
创建ari对象。
发起请求,等待请求。
关闭请求,等待响应。
解码相应内容。
17.特殊关键字
forEach:逐个打印。
where:返回满足条件的值。
any:判断是否有满足条件的值
every:判断是否所有值都满足条件。
getter:注意调用通过访问的方式访问area
对象操作符:?条件运算符 as 类型转换 is 类型判断 .. 级联操作
async:把方法变成异步。(只有async可以调用await)
await:等待异步方法执行完成。
?:可空类型。
!:类型判断。
late:延迟初始化。
require:用于标记命名参数,使其不为空。
flutter
1.目录结构
1.1.android:android相关代码。
1.2.ios:ios相关代码。
1.3.linux:linux相关代码。
1.4.macOS:macOS相关代码。
1.5.web:web相关代码。
1.6.window:window相关代码。
1.7.lib:flutter相关代码。
1.8.text:用于存放测试代码。
1.9.pubspec.yaml:配置文件。
1.10.analysis_options.yaml:分析dart语法。
2.抽离成组件
2.1.StatelessWidget:无状态组件,不可变成widget
2.2.StatefulWidget:有状态组件,持有状态可能在widget生命周期改变
3.Text容器组件
3.1.textAlign:文本对齐方式
center居中
left左对齐
ringht右对齐
justly两端对齐
3.2.textDirection:文本方向
ltr从左向右
rtl从右向左
3.3.overflow:文本超出屏幕后的处理方式
clip裁剪
fade渐隐
ellipsis省略号
3.4.textScaleFactor:文本显示倍率
3.5.maxLine:文字显示最大行数
3.6.style:字体样式格式
4.Text style 参数
4.1.decoration 文字装饰线
none 没有线;
line Through 删除线
overline 上划线;
underline 下划线
decoration Color 文字装饰线颜色.
4.2.wordspacing 单词问隙 (如果为负,会让单调更紧凑).
4.3.letter Spacing 字母间隙 (如果为负,会让字母更紧凑)
4.4.fontstyle 文字样式
font size 文学大小
color 文字颜色
font Weight 字体粗细.
4.5.decorationstyle 文字装饰风格.
[dashed,dotted]虚线,
double两根线,
solid 一根实践,
wavy波浪线
5.ListView组件
5.1.SurollPirection
Axis.horizontal 水平列表
Axis.vertical 垂直列表
5.2.padding EdgelnsetsGeometry 内边距
5.3.resolve bool 组件外的排序
5.4.children List 列表示素
6.Container容器组件
6.1.alignment:
tocenter:顶部居中对齐。
toLeft/toRight:顶部左/右对齐。
center:水平居中对齐。
center Left/Right:垂直居中左/右对齐
bottom center:底部居中对齐。
bottom Left/Right:底部居中左/右对齐
6.2.margin:表示与Container容器的距离。
6.3.padding:内边距
6.4.transform:让Container容器进行旋转。
6.5.height:容器高度
6.6.weight:容器宽度
6.7.decoration:
BoxDecoration:背景
borderRaius:圆角
boxshadow:阴影
graddient:渐变,包括径向渐变和线性渐变
6.8.child:容器子元素。
7.Image库
7.1.Image. asset 本地图片
7.2.Image. metworl 远程图片.
7.3.alignment Alignment (类型)图片对齐方式
7.4.fit Boxpit 控制图片的拉伸和挤压.(根据父容器)
Boxfit.fill 全图显示.图片被拉伸并充满父容器.
Boxfit. contain 全图显示,显示原比例.可能有空隙
Box hit.cover. 显示可能拉伸.可能裁切.充满并不变型.
Box fit.fitWidth:宽度充满,导示可能拉伸,可能截切。
Bor Fit.titHeight:高度充满.,显示可能拉伸 可能截切.
7.5.repeat(平铺):
ImageRepeat.repeat横向纵向都进行重复直至铺满整个画布
ImageRepeat. repeatX:横向堂复,纵向不复制
Image Repeat.repeatY:纵向重复,横向不重复.
7.6.width. 宽度. 一般结合Clip Oval
7.7.height 高度.一般结合Clip Oval