前言
笔者入门flutter有段时间了,但是发现一些比较重要的知识点还是老是遗忘,为了方便自己,顺便也可能能够方便一下广大coders,决定整理一下系列的学习笔记。
PS:此篇为首篇,主要是Dart语言的语法糖收集,我自己有OC、js、Swift的基础,故收集的都是与之不同之处,仅供参考(>_<),非常欢迎补充和指正。
知识点
1.常量定义
Dart中常量有两个关键词const和final,但是final更为强大
//普通常量完全一样
const i = 123;
final i2 = 234;
//动态获取的常量只能用final
final dy_i = new DateTime.now();
2.字符串
多行字符串用3个引号'''xx''',字符串拼接除了’+‘之外还可以用$,数字和字符串直接相互转换用toString和parse
//多行
String str01 = '''123
123
123
''';
String str02 = '444444';
//拼接
print("$str01$str02");
print(str01 + '888' + str02);
//转换
var num = 2;
var str_num = num.toString();
// print(str_num);
// print(double.parse(str_num));
3.数组List
创建、增删查改、去重
List l1 = ['r','p'];
l1.add(1);
print(l1.length);
print(l1.isNotEmpty);
//倒序,返回元组
print(l1.reversed);
print(l1.reversed.toList());
var l2 = new List<String>();
l2.add('o');
l2.addAll(['r','p']);
//删,有重复只删首个
l2.remove('r');
//查找,返回首个的下标,未找到返回-1
print(l2.indexOf('r'));
//改,0到2都改为t
l2.fillRange(0, 2,'t');
//与字符串相互转换
var str_list;
str_list = l2.join('-');
print(str_list);//[t, t, p]
print(str_list.split('-'));//t-t-p
//map where 返回元祖 any every 返回bool
var l3 = l2.map((value){
if(value=='t') return 'list';
return value;
});
print(l3);//(list, list, p)
var l4 = [1,2,3,4].where((value){
return value>2;
});
print(l4);//(3, 4)
//任意满足
var b1 = [1,2,3,4].any((value){
return value>2;
});
//全部满足
var b2 = [1,2,3,4].every((value){
return value>2;
});
print(b1);//true
print(b2);//false
//用集合去重
l2.addAll(['o','t']);
print(l2);//[t, t, p, o, t]
var st = new Set();
st.addAll(l2);
print(st.toList());//[t, p, o]
4.字典Map
键值对,支持map[key]语法
Map m1 = {'name':'张三'};
print(m1['name']); // 张三
5.运算符
有些比较有意思的运算符,其他都相同
//取整和为空判断??
var num1;
var num2 = 2;
num1 = num1 ?? 3;//简写为??=
print(num1~/num2);//1
print(num1);//3
6.方法Function
参数类型有普通参数、可选参数、命名参数、方法参数
//[]可选参数,{}命名参数,且不能共存
String printUserInfo(String name,{int age = 28,String sex,String work}){
print('name=$name,age=$age,sex=$sex,work=$work');
}
fn1(){
print('gogogo!');
}
printUserInfo('张三',work:'搬砖');
fn2(fn){
fn();
}
fn2(fn1);