zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Dart(二)变量与注释

变量 注释 Dart
2023-09-27 14:19:37 时间

Dart(二)变量与注释

变量

方式一:var 用于声明变量,不用特指其类型。

    var age = 15;
    var name = 'li';
    var sex = "male";
    var value = true;
    var side = false;
    var distance = 11.5;
    print('---------------');
    print(age);
    print(name);
    print(sex);
    print(value);
    print(side);
    print(distance);
    print('---------------');
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: ---------------
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: 15
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: li
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: male
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: true
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: false
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: 11.5
02-21 11:27:09.485 3057-3078/com.zrfpublic.flutternote I/flutter: ---------------

但需注意:一旦赋值就固定其类型了,不能再赋予其他类型的值。

 

 
image.png

方式二:使用内置类型

  • 数字
  • 字符串
  • 布尔值
  • 数组或列表
  • map
  • 符号
    int a = 11;
    double b = 3.3;
    String c = "333";
    String d = '33';
    bool e = false;
    List<String> f = ['a','b'];
    List g = [1,2];
    var h = [1,2,3];
    List i =new List(3);//指明数组长度
    Map map = new Map();
    Map<String,String> map2 = new Map();
    var map3 = {
      'a':'aa',
      'b':'bb'
    };
字符串

字符串与int double转换

    int a = int.parse("11");
    double b = double.parse("22.3");
    String c = 33.toString();
    String d = 44.3.toString();
    print(a);
    print(b);
    print(c);
    print(d);

02-21 12:08:21.049 3057-3078/com.zrfpublic.flutternote I/flutter: 11
02-21 12:08:21.050 3057-3078/com.zrfpublic.flutternote I/flutter: 22.3
02-21 12:08:21.050 3057-3078/com.zrfpublic.flutternote I/flutter: 33
02-21 12:08:21.050 3057-3078/com.zrfpublic.flutternote I/flutter: 44.3

字符串可以用单引号或双引号引,都可以。

    String c = "333";
    String d = '33';

字符串模板

    使用   $变量名   ${表达式}
    String a = '111';
    String b = '222';
    String c = 'ccc';
    String d = '$a and ${b} and ${2+2} and ${c+c}';
    print(d);

02-21 12:15:35.670 3057-3078/com.zrfpublic.flutternote I/flutter: 111 and 222 and 4 and cccccc

字符串比较 使用==

    String a = '111';
    String b = '222';
    String c = "111";
    print(a==b);
    print(a==c);

02-21 12:20:15.491 3057-3078/com.zrfpublic.flutternote I/flutter: false
02-21 12:20:15.491 3057-3078/com.zrfpublic.flutternote I/flutter: true

字符串判空

  var e = '';
  print(e.isEmpty);
  print(e==null);
  var f;
  print(f==null);
02-21 12:40:07.018 3057-3078/com.zrfpublic.flutternote I/flutter: true
02-21 12:40:07.018 3057-3078/com.zrfpublic.flutternote I/flutter: false
02-21 12:40:07.018 3057-3078/com.zrfpublic.flutternote I/flutter: true

连接字符串 使用+ 或 两个字符串相邻(声明时,两个字符串之间0-n个空格)

    String d = 'aaa''bbb'     'ccc';
    String e = 'a'+'b'+"c";
    print(d);
    print(e);

02-21 12:24:18.590 3057-3078/com.zrfpublic.flutternote I/flutter: aaabbbccc
02-21 12:24:18.590 3057-3078/com.zrfpublic.flutternote I/flutter: abc

保持格式的字符串 使用''' ''' 引起来

String f = '''
    a
    bdd   dd 22 %&**(
    
    3
    ''';
    print(f);

02-21 12:27:55.689 3057-3078/com.zrfpublic.flutternote I/flutter:     a
        bdd   dd 22 %&**(
        
        3
布尔值 只有true是真 false是假 其他全不合法(与js不一样)。
    bool a = true;
    bool b = false;
    print(a==true);
    print(b==false);
    print(!b);
02-21 12:35:09.728 3057-3078/com.zrfpublic.flutternote I/flutter: true
02-21 12:35:09.728 3057-3078/com.zrfpublic.flutternote I/flutter: true
02-21 12:35:09.728 3057-3078/com.zrfpublic.flutternote I/flutter: true
 
image.png
变量默认值与java不同
  • 变量的默认值都是null,原因是dart中所有类型都是Object的,不赋值则默认为null。

var、const、final之间区别

  • var可以声明一个变量,但是可以根据变量的值自动推导出其具体的数据类型,确定数据类型后,就不能赋值别的类型的数据了,强类型语言特性。
  • const声明一个变量,初始化后,其值便不可再改变,const表示的是编译时常量,也就是说在编译前就确定了其值。
  • final声明一个变量,初始化后,其值便不可再改变,但是final声明的变量直到第一次使用时才开始赋值,也就是惰性赋值,也就是说在运行时才确定。
  • const和final因为只需要赋值一次,便不能再次更改,因此其声明一个变量时,可以选择不明确其数据类型,自动推导即可,下面代码都是ok的:
const a = 1;
const int b = 2;
final c = 1;
final int d = 2;

注释

和其他语言的注释基本类似:

  • 单行注释和多行注释
    //单行注释
    int a=1;
    /*
      多行注释,可以跨行
     */
    String str = '333';
  • 文档注释:可以利用dart的文档生成器生成sdk文档
    /// 单行文档注释
    String str2 = "333";
    /**
     * 多行文档注释
     */
    String str3 = "333";