Flutter Dart 声明和数据类型

67 阅读1分钟

类型声明(类型声明在前和 java 风格一样,代码整体倾向于 Java 和 JavaScript)

1、声明变量

int a = 0;

var a = 0; 或 dynamic a = 18;

2、变量名大小写敏感

var age;

var Age;

是两个变量

3、变量默认值 null

var a;//a 的默认值就是null

4、不具备隐式转换

通过方法显示转化到想要的类型

5、常量 final 不可变和 const 常量

const 声明编译时常量

final 声明运行时的常量

例子:

var c = 20;
//延迟初始化, lazy initral
late String desc = getDesc();

String getDesc() {
  print("getDesc");
  return "desc";
}

void main(List<String> args) {
  //字符串字面量
  print("object");
  print('object');
  var a = 42;
  //参数
  printInteger(a);
  //空类型安全 可空
  String? b = "hello";
  print("b = $b");
  b = null;
  print("b = $b");
  print("c = $c");
  //默认值 null
  int? d;
  print("d = $d");
  //late lazy 加载
  print("desc = $desc");

  //不可变的变量,声明运行时使用, 初始化时候
  final x = 1;
  //编译时常量
  const y = 3;
  // y = 2;
  final p = Person( "bb",18);
  // p.age = 20;
  // p.name = "bob";
  print(p.name);

  //字符和数字之间的转换方式
  var f = int.parse('1');
  print(f);
  //十六进制转换
  var g = int.parse('f', radix: 16);
  print("g=$g");
  //类型
  //Numbers(int,double)
  //Strings(String)
  //Booleans(bool)

//多行字符串
  var s1 = """
abcd
""";
}

class Person {
  //必须需要初始化值
  int age;
  String name;
  //不初始化,可以通过构造器来处理
  Person(this.name,this.age);

  // Person(int i, String s) {
  //   this.age = i;
  //   this.name = s;
  // }
}

void printInteger(int a) {
  //字符串插值
  print("a = $a");
}

数据类型

1、Number

int 表示整数

double 表示浮点类型,

2、String

声明单引号、 双引号 、多行字符串

字符串插值 = kotlin 字符串模板

3、Boolean

4、List

  • 字面量方式

List List= [];

List List= <int>[];
  • 构造方式

List List= List.empty(growable:true);

  • 扩展操作符

var List= [1,2,3];

var List2= [0,...list];

例子:

var list = [1, 2, 3, null];
void main(List<String> args) {
  //1、List
  print(list[0]);
  print(list.first);
  print(list.last);
  print(list.length);
  print(list.isEmpty);
  //扩展操作(...)
  var list1 = [...list];
  print(list1.length);
  //空感知扩展操作符 (...?) 不加?报错
  var list2;
  var list3 = [...?list2];
  print(list3);
  //数组中加入表达式
  var list4 = [1, 2, 3, 4, if (list2 == null) 4 else 5];
  print(list4);
  //2、 Set、Map
  var set = {2, 3, 4};
  var map = {'a': 1, 'b': 2};
  var empty = {};
  //编译器常量
  final constSet = const {"box", "row", "column"};

  var gifts = Map<String, String>();

  gifts['first'] = "partridge";
  gifts['second'] = "turtledoves";
  gifts['fifith'] = "golden rings";

  var gases = Map<int, String>();
  gases[1] = 'first';
  gases[2] = 'neo';
  gases[3] = 'argon';

// e 表示元素
  constSet.map((e) => print("key $e"));
  // map
  gases.forEach((key, value) {
    print("key $key , value =$value");
  });
}