TA的每日心情 | 奋斗 2023-7-31 00:00 |
---|
签到天数: 25 天 [LV.4]偶尔看看III
荣誉会员
- 积分
- 750
|
本站资源全部免费,回复即可查看下载地址!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
//变量声明:
定义变量 : var/string/int/double/bool/list/maps/dynamic
注意: dynamic 可以存储任意类型,编译器则会关闭对此变量的类型检查,正确性需要自己来保证
注意事项 : string类型变量可以用 ' / " / ''' / """ 来包裹, 3个单引号或双引号可以多行
在dart中 int 整数型 double 小数型
内容拼接 : string拼接直接在双引号中拼接要在变量前加$ 例:print("$var $var"),拼接符 + 例: var1 +'/'+ var2
list声明: 例: var a = []; 例: var b=new List(); 例:var c = new List<String>(); 访问: print(a[0])
map 声明: 例: var a = {'name':'张三','age':14}; 例:var a = new Map(); b['name']='李四' 访问:a['name']
enum enumName {
}
//运算符
算数运算符: + - * / % ~/(取整)
关系运算符: > < = != <= >=
逻辑运算符: !(取反) &&(并且) ||(或者)
赋值运算符: = ??=(变量为null则赋值) ++ -- += -= *= /= ~/=
条件运算符: a = bool ? a : b;(三元运算符) a = b ?? c;(b为不为null则取b否者取c)
条件表达式: if switch
//定义常量 coust/final
count 声明必须赋值
final 可以先声明后赋值且惰性加载
//循环
for / while / do--while //循环
break / continue //跳出循环 / 跳出本层循环
//list数组(如果想要数据没有重复可以用Set )
属性:
list.length //获取list的长度
list.reversed //list数据翻转
list.isEmpty //list是否为空
list.isNotEmpty //list是否不为空
方法:
list.add('a') //增加数据
list.addAll(['a','b']) //拼接数组(可用于往数组中批量添加数据)
list.indexOf('a') //查找数据并返回数据索引,没有则返回-1
list.remove('a') //删除数组中的指定值
list.removeAt(0) //删除数组中指定索引下的值
list.fillRange(开始位置,结束位置,值) //修改数据
list.insert(index,value) //指定位置插入数据
list.insertAll(index,list) //指定位置插入list
list.toList() //其他类型转换为list类型
list.join('分隔符') //list转换成文本
string.split('分隔符') //数组合并成文本
list.forEach() //遍历循环
list.where() //遍历循环查找数据
list.map() //遍历循环修改数据
list.any() //有满足条件就返回true
list.every() //所有满足条件就返回true
//List生成指定数量数据
List.generate(生成数量,(i){
})
//map
属性:
map.keys //获取所有key值
map.values //获取所有value值
map.isEmpty //map是否为空
map.isNotEmpty //map是否不为空
方法:
map.remove(key) //删除数据
map.addAll({..}) //添加数据
map.containsValue('abc') //是否存在该值
map.containsKey('age') //是否存在该键
map.forEach() //遍历循环
map.where() //遍历循环查找数据
map.map() //遍历循环修改数据
map.any() //有满足条件就返回true
map.every() //所有满足条件就返回true
async / await 异步
//类型转换
int.parse(要转换为整数型的变量) //变量转换为整数型
double.parse(要转换为小数型的变量) //变量转换为小数型
变量.toString() //变量转换为文本型
json.decode(json) //json转map
json.encode(map) //map转json
//时间操作
var now = DateTime.now().microsecondsSinceEpoch //获取当前时间戳
DateTime.fromMillisecondsSinceEpoch(时间戳) //时间戳转时间
DateTime(2021,4, 0).day //获取本月有多天数
//判断数据类型
变量.isEmpty //判断变量是否为空
变量.isNaN //判断变量的值是否为NaN
try{
}catch(err){
}
//引入 库
import "lib/data.dart"; //自定义库引入
import "dart:io"; //dart自带库引入
//第三方库导入流程
1、从下面网址找到要用的库
https://pub.dev/packages
https://pub.flutter-io.cn/packages
https://pub.dartlang.org/flutter/
2、项目根目录下创建一个pubspec.yaml文件,内容如下
name: xxx
description: A new flutter module project.
dependencies:
http: ^0.12.0+2
date_format: ^1.0.6
3、引入库(具体引入可以看 流程1)
import 'package:date_format/date_format.dart';
//函数定义于用法
1、可选参数函数 用[]包裹同时可选参数可以设置默认值
String getInfo(String Name,[String Sex='男',int Age]){
String str = "$Name--$Age";
if(Sex!=null) str=str+"--$Sex";
return str;
}
print(getInfo('张三','男',12));
2、命名参数函数 用{}包裹,在运行函数是需要带上参数名称如果 Sex:'女'
String getInfo(String Name,{String Sex='男',int Age}){
String str = "$Name--$Age";
if(Sex!=null) str=str+"--$Sex";
return str;
}
print(getInfo('张三',Sex:'女',Age:12));
3、匿名函数(函数赋值于变量在运行)
写法一:
var Name = (String name){
print("这是一个匿名方法,输入的参数内容是 $name");
};
Name('aaa');
写法二:
void Name(String name){
print("这是一个匿名方法,输入的参数内容是 $name");
};
var func = Name;
func('bbbb');
4、箭头函数
//普通代码
List list=[4,1,2,3,4];
var newList=list.map((value){
if(value>2){
return value*2;
}
return value;
});
print(newList.toList());
//上面代码通过箭头函数简写后的代码
var newList2=list.map((value)=>value>2?value*2:value);
print(newList2.toList());
//通过箭头函数输出list内容
list.forEach((value)=>print(value));
6、闭包函数(常驻内存/不污染全局)
//闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
//闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包。
func(){
int a=1;
func2(){
a++;
return a;
}
return func2;
}
var f = func();
print(f()); //2
print(f()); //3
print(f()); //4
//类
class //声明一个类
static //声明一个静态属性或方法
abstract //声明抽象类(dart在声明的时候只有普通类和抽象类不存在接口)
extends //继承
with //添加类(可以先继承类后在添加类,不能添加已经继承的类)
implements //以接口形式继承(可以一个或多个)
类名.方法名 //命名构造方法声明 例:Person.row(this.name,this.sex){....}
运算符:
? 条件运算符
as 类型转换
is 类型判断
.. 级联操作 (连缀)
命名构造方法
1、与对象同名的方法既为构造方法
2、方法或属性以 _ 开头即为私有
Web(String name,num age,String sex) : super(name, age){...}
super.func() / this.func()
//泛型函数
定义:
T getInfo<T>(T str){
return str;
}
运行:
print(getInfo<String>('123'));
//泛型类
定义:
class Data<T>{
List l = new List<T>();
add(T data){
this.l.add(data);
}
printData(){
this.l.forEach((value) {
print(value);
});
}
}
运行:
Data l = new Data<String>();
l.add('a');
l.add('b');
l.printData();
学习中记录这个只是为了忘记的时候方便查询!
|
温馨提示:
1、本站所有内容均为互联网收集或网友分享或网络购买,本站不破解、不翻录任何视频!
2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
3、本站资源仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
4、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会第一时间改正!
5、若发现链接失效了请联系管理员,管理员会在2小时内修复
6、如果有任何疑问,请加客服QQ:1300822626 2小时内回复你!
|