Dart 语法

Nan (/)
2022-01-19T20:10:00+08:00

一 快捷语法

// 取反
bool isClick = true;
isClick = !isClick;

// ?: 三目运算符
late int age;
isClick == true ? age = 1 : age = 2;
// 需要返回值
return isClick ? true ? age = 1 : age = 2;
isClick == true ? return 1 : return 2;

// ?? 判空 为空则给它赋值
String name = user.name ?? "yanan";

// 只能判断对象
// ?. 如果 user.name 为空返回null 否则返回其值
late string name;
name = user?.name;
可与??联合使用,为空返回0
name = user?.name ?? 0;

// ??= 如果为空则赋值
age ??= 1;

// => 粗箭头运算符，函数里只有单条语句时用
// 一是相当于 {return x;}
void getName(User user)=> user.name;
// 二是单条语句时用
void getName(User user)=> print(user);

// .. 级联运算符更改对象属性（通常是在创建对象时）
User user = User()
    ..name = 'yanan'
    ..age = 12;

// ~/ 相除以并返回结果的整数部分
        int a = 3;
        int b = 7;
        int c = b ~/a;
        print(c); // 2

二 常用

常用属性:
print(b.isNaN);//是否是数字 NaN
print(b.isEven);//是否是偶数 true
print(b.isOdd);//是否是奇数 false
print(b + c);//24.5
print(b - c);//-0.5
print(b * c);//150.0
print(b / c);//0.96
print(b ~/ c);//0  取整
print(b % c);//12.0

int e = -20;
print(e.abs());//绝对值 20
double f = 10.5;
print(f.round());//四舍五入  11
print(f.floor());//不大于的最大整数 10；
print(f.ceil());//不小于的最小整数 11
print(f.toInt());//转成int 10;
print(b.toDouble());//转double 12.0
print(a.toInt());

三 数组

// ... 遍历数组
var ageList = [1,2,3,4,5];
var otherList = [
          6,
          7,
          8,
          ...ageList,
          ];
// 数组操作
// 固定长度数组添加数据 list[0]
// 不固定长度添加数据 list.add
List<int> list52 = [3, 4, 1, 2, 5];
    int result27 = list52.reduce((a,b)=>(a+b));//3+4+1+2+5   用指定的方法对元素做连续操作，将结果返回
//    print(result27);//15
    int result28 = list52.reduce((a,b)=>(a*b));//3*4*1*2*5   用指定的方法对元素做连续操作，将结果返回
//    print(result28);//120