1、number
// dart的数据类型
void numType() {
var a = 1;
double b = 0;
int c = 9;
print(c.isEven);
print(c.isOdd);
print(a + b);
}
2、string
void stringDemo() {
var a = "sj";
print(a + "aa");
// 多行
var b = "sss\n"
"ccc\n"
"ddd";
print(b);
// 三引号
String str1 = '''sss
aaa
ddd''';
print(str1);
int c = 10;
int d = 20;
print('c + d = ${c + d}');
String str2 = "Hello\nWorld"; // 换行
String str3 = r"Hello\nWorld"; // r去除转义,直接打印
print(str2);
print(str3);
}
3、list
void listDemo() {
// 创建可变list
var list1 = [1,2,3,"sj"];
print(list1[3]);
list1[3] = "zh";
print(list1[3]);
// 不可变list
var list2 = const[1,2,3];
print(list2);
var list3 = ["china", "american", "japan"];
list3.insert(1, "carian");
list3.remove("american");
list3.clear();
print(list3);
var list4 = [1,4,2,6,5,3];
list4.sort();
print(list4);
print(list4.sublist(4,7));
}
4、map
void mapDemo() {
// 可变的map
var json1 = {'one': 'chinese', 'two': 'english'};
print(json1['one']); // 取值
json1['one'] = 'cn';
// 不可变的map
var json2 = const {'one': 'chinese', 'two': 'english'};
print(json2.length);
print(json2.values);
print(json2.keys);
var list = ['china', 'england', 'japan'];
print(list.asMap());// {0: china, 1: england, 2: japan}
}
5、运算符
void operatorDemo() {
var a;
// 当a为空 a赋值为10,否则不赋值
a ??= 10; // 10
a ??= 5; // 10
print(a);
var b;
b = 5;
// 如果左边有值,返回左边,否则返回右边
print(b ?? a);
}
6、函数
/*
* Dart中的方法
* 方法也是一个对象
* 返回值和参数类型可以省略
* 当方法的执行语句只有一句的时候,可以使用箭头函数 => 表达式
* 可选参:传递参数的时候必须带上形参的名字
* 匿名方法:没有方法名
* */
void functionDemo() {
print(sum(10, 20));
print(sum1(1, b: 3));
print(sum2(1, 2, 3));
var func = () {
print("匿名方法");
};
func();
// 立即执行匿名函数
((){
print("立即执行");
})();
// 匿名方法作为参数
var list = [1,2,3,4];
forEachDemo(list, (var a) {
b++;
print('元素$b = $a');
});
}
sum(a,b) => a + b;
// b,c可选参
// b, c必须是可选类型
// 或者 sum1(int a, {int? b, int? c})
sum1(int a, {b, c}) {
b ??= 0;
c ??= 0;
return a - b + c;
}
// 默认值基于位置传递的
// 调用时可以不加名称
int sum2(int a, [int b = 0, int c = 0]) {
return a + b + c;
}
forEachDemo(List list, void func(var element)) {
for (var e in list) func(e);
}
int b = 0;
printElement(var a) {
b ++;
print('元素$b = $a');
}
void functionDemo1() => print("Hello World");
7、闭包
/*
* 闭包 closure
* 定义在函数里面的函数就是闭包,闭包也是一个对象。
* 闭包的作用:可以访问外部函数的局部变量。
* */
void closureDemo() {
var func = funA();
func(); // 0
func(); // 1
func(); // 2
}
funA() {
int count = 0;
// 匿名函数为闭包
// 并且持有局部变量 count
return ()=>print(count ++);
}
网友评论