Flutter——dart基础语法

145 阅读1分钟
  • 变量名规则
    - 数字、字母、下划线和$符号组成
    - 不能是数字开头、并且变量不能是保留字和关键字
    - 区分大小写
    - 顾名思义
    1.   变量名的定义:
    void main() {
        var str = '您好!';
        String  AA = 'hello word';
        String aa = 'hello word';
        int nu_m = 123456;
        int nu_$m = 123456;
        double num$1 = 13245;
        print(str);
    }
    2.  声明变量的方式  
        var 变量声明
        cosnt 常量,代码编译时就确定值
        final 常量,区别,惰性初始化,即代码执行到这句时才进行初始化
        const a = new DateTime.now(); //初始化不成功
        final b = new DateTime.now();
        String aa = '''字符串文本
        可换行''' //三个单引号,字符串可进行换行  
    
  • 常用数据类型

    String 字符串类型
    int 整形
    double 浮点型,也可以用来定义整形
    List 集合/数组
        集合常用方式
            var l1 = ['张三',20true]
            var l2= <String>["张三","李四"]
            var l3 = [];  //l3.length 长度为0
            l3.add("王五")
            var l4= List<String>.filled(2,'');  //创建固定长度为2、类型字符串的集合 不可增加数据,不可改变长度
        集合的常用属性和方法:
        属性:
            length  长度
            reversed 翻转
            isEmpty 是否为空
            isNotEmpty 是否不为空
        方法:
           add()                 //  增加元素
           addAll()             //   拼接数组
           indexOf(元素)         //  查找元素所在的下标,反之没找到返回-1
           remove(元素)          //  删除元素
           removeAt(下标)         // 删除元素
           fillRange(开始下标,结束下标,修改为的值)   
               myList.fillRange(1,3,'aaa');
               [苹果, aaa, aaa, 葡萄]  //修改元素
           insert(index,value)  //插入元素
           insertAll(index,list) //插入数组
           toList() //其他类型转为集合
           join()   //集合拆分成字符串
           split()  //字符串转集合
           map()    //循环
           var newmyList = myList.map((element) {
                  return element * 2;
                }).toList(); // 不适用toList的话为(苹果苹果, 香蕉香蕉, 桃子桃子, 桃子桃子)
           forEach()  //遍历集合
           myList.forEach((element) {
              print(element); //element为值
             });
           where()  //循环满足条件的元素组成新数组
           any()   //只要集合有一个元素满足条件就返回true
           every() //只要集合每个元素满足条件就返回true
    set 类似集合
        去重
            var myList = <String>["苹果", "香蕉", "桃子", "桃子"];
            var s = new Set();
            s.addAll(myList);
            var s = new Set()
            print(s.toList());
        foreach 循环
              var s = new Set();
              s.addAll([1,2,3]);
              s.forEach((element) =>print(element));
        
    Map 对象
        常用方式
            var l6 = {
                "name":"张三",
                "age":20
              }; 
            l6["name"] //访问属性
            var p = new Map() 
       常用属性和方法:
        属性:
            length  长度
            keys 获取键名
            values  获取键值
            revers
            isEmpty 是否为空
            isNotEmpty 是否不为空
        方法:
            addAll({
                "work":["敲代码","跑路"]
            })
            containsValue 查看映射内的值,返回true/false
            forEach
                s.forEach((key,value)=>{
                    print($key $value);
                }
            map
            where
            any
            erery
    Bool 布尔值
    
  • 输出

    int a = 10
    int b = 100
    print(a)
    print('$a,$b')
    print('$a $b')
    
  • 类型判断

    var str = "123456";
    print(str is String)
    print(str is int)
    print(str.isEmpty) //判断字符串是否为空
    print(str == null); //判断字符串是否为null
    print(str.isNaN); //判断是不是不为数字
    
  • 运算符

       算数运算符 + - * / %取余 ~/取整
       关系运算符 == != > < <= >=
       逻辑运算符 ! 取反  && 并且 || 或者 
       赋值运算符 
           int ? b 
           b??=23  如果b为空则为其赋值23,反之定义时的默认值
       条件表达式 
           var score = 70;
      if(){}else{}使用:
          if(score>60){
              print('优秀')
          }else{
              print("良好")
          }
      switch使用:
          switch(score){
              case "70":
                  print("");
                  break;
              case "60":
                  print("")
                  break;
              defaule:
                  print("");
                  break;
          }
       三目运算使用:
           bool flag = true
           String c = flag ? 'true' : 'false' 
       ??运算符使用:
           var a;
           var b = a ?? 10 //如果a有值则为b赋值为a ,反之10赋值给b
    
  • 类型强转

    int b = 100;
    b.toString()  //Number转String
    String str = '100' 
    int.parse(str)  //字符串转整形
    
  • 循环条件语句

    for循环:
        for(int i = 0;i<10;i++){
            if(i==4){
              break;  // 跳出当前循环体 0,1,2,3
              continue; //0,1,2,3,5,6,7,8,9
            }
            print(i);
       }
    while循环:
        int i = 1;
        while(i<10){
            print(i);
            i++
        }
    do while循环:
        int i = 1;
        do{
           print(i); 
           i++;
        }while(i<3);
    
  • 方法定义

    - void main()  //无返回值
    - main()      //有返回值
    - String main()  //返回值须带类型
    - String 方法名(int age,String name)  //参数类型约束
    - String 方法名(String name,[int age]) //参数类型约束+可选参数,可选参数以数组形式放在里面[int age]
    - String 方法名(String name,[int age,String sex='男']) // 参数默认值
    - String 方法名(String name,{int age,String sex='男'})  //命名参数  方法名('张三',age:20)