Flutter Dart 语法笔记
2019-08-19 本文已影响0人
calary
一、前言
Dart 作为开发Flutter的语言,在平时使用中会碰到一些比较容易遗忘的用法,这里对平时使用中遇到的用法做一个笔记,用来不清楚时查看。
二、用法笔记
1、特殊运算符((?.)、(??=)、(??))
Dart中的这几个运算符主要用来简化处理变量实例缺失(为null)的情况。
-
?.运算符 上面Person类中有printInfo()方法,p 是 Person的一个可能为null的实例。那么p调用成员方法的安全代码,可以简化写为p?.printInfo(),表示p为null的时候跳过,避免抛出异常。
-
??运算符 如果a不为null则返回a的值,否则返回b的值。在java或者C++中我们通过三元表达式 (a!=null) ? a : b 来实现。在Dart中直接可以 a ?? b。
-
??=运算符 如果a为null,则给a赋值value,否则跳过。a ??= value。
为了方便说明,我们定义一个类如下
class Person {
String name;
int age;
Person(this.name, this.age);
void printInfo() {
print('name is $name, age is $age');
}
}
void main() {
Person p; // p为null
p?.printInfo(); // 避免为 null 抛出异常,可以使用 ?. 进行简写
Person p1 = Person('Dart', 2);
var a;
var b = 'Java';
p1.name = a ?? b; // 如果a不为null,则值为a,否则为b
print('name:${p1.name}');// 打印结果,name:Java
a ??= 'C++'; // 如果a为null,则给a赋值
b ??= 'C#';
print('a:$a,b:$b'); // 打印结果,a:C++,b:Java
}
2、数字处理
-
2.1 数字取整
- floor(): 舍得形式,
- round(): 四舍五入形式
- ceil(): 入的形式
-
2.2 字符串转数字
- int.parse(String str): 字符串转int
- double.parse(String str): 字符串转double
-
数字转字符串
- toStringAsFixed(int num):保留几位小数
- toStringAsPrecision(int num):保留几位数,包括整数部分
void main() {
double pi = 3.14;
int floor_pi = pi.floor(); // 舍
int round_pi = pi.round(); // 四舍五入
int ceil_pi = pi.ceil(); // 入
String str = '5';
int i = int.parse(str); // 字符串转int
double j = double.parse(str); // 字符串转double
double pi_l = 3.1415926;
String st = pi_l.toStringAsFixed(2); // 保留两位小数
String st2 = pi_l.toStringAsPrecision(5); // 保留几位数,包括整数部分
print('''
floor(舍): $floor_pi,
round(四舍五入): $round_pi,
ceil(入): $ceil_pi;
字符串转int:$i
字符串转double: $j
保留两位小数: $st
保留5为数:$st2
''');
/** 输出结果
floor(舍): 3,
round(四舍五入): 3,
ceil(入): 4;
字符串转int:5
字符串转double: 5.0
保留两位小数: 3.14
保留5为数:3.1416
*/
}