当前位置: 首页 > news >正文

(五)Dart 数据类型

Dart 数据类型

常用数据类型

Numbers(数值)

  • int:表示整数。
  • double:表示浮点数。

Strings(字符串)

  • String:表示字符串。

Booleans(布尔)

  • bool:表示布尔值,值为 truefalse

List(数组)

在 Dart 中,数组是列表对象,通常称为列表。

Maps(字典)

Map 是一个键值对相关的对象,键和值可以是任何类型的对象。每个键只出现一次,而一个值可以出现多次。

项目中用不到的数据类型

Runes

Rune 是 UTF-32 编码的字符串,可以通过文字转换成符号表情或者代表特定的文字。

main() {
  var clapping = '123123';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

  Runes input = new Runes(
      '111111');
  print(new String.fromCharCodes(input));
}

Symbols

Symbol 对象表示在 Dart 程序中声明的运算符或标识符。入门阶段不需要了解这东西,可能永远也用不上。


Dart 数据类型示例代码

字符串类型

void main() {
  // 1、字符串定义的几种方式
  // var str1 = 'this is str1';
  // var str2 = "this is str2";
  // print(str1);
  // print(str2);

  // String str1 = 'this is str1';
  // String str2 = "this is str2";
  // print(str1);
  // print(str2);

  // String str1 = '''this is str1
  // this is str1
  // this is str1
  // ''';
  // print(str1);

  // String str1 = """
  // this is str1
  // this is str1
  // this is str1
  // """;
  // print(str1);

  // 2、字符串的拼接
  String str1 = '你好';
  String str2 = 'Dart';
  // print("$str1 $str2");
  print(str1 + str2);
  print(str1 + " " + str2);
}

数值类型

void main() {
  // 1、int 必须是整型
  int a = 123;
  a = 45;
  print(a);

  // 2、double 既可以是整型也可以是浮点型
  double b = 23.5;
  b = 24;
  print(b);

  // 3、运算符
  // + - * / %
  var c = a + b;
  print(c);
}

布尔类型

void main() {
  // 1、bool
  // bool flag1 = true;
  // print(flag1);

  // bool flag2 = false;
  // print(flag2);

  // 2、条件判断语句
  // var flag = true;
  // if (flag) {
  //   print('真');
  // } else {
  //   print('假');
  // }

  // var a = 123;
  // var b = '123';
  // if (a == b) {
  //   print('a=b');
  // } else {
  //   print('a!=b');
  // }

  var a = 123;
  var b = 123;
  if (a == b) {
    print('a=b');
  } else {
    print('a!=b');
  }
}

List(数组/集合)

void main() {
  // 1、第一种定义 List 的方式
  // var l1 = ["张三", 20, true];
  // print(l1);  // [张三, 20, true]
  // print(l1.length);  // 3
  // print(l1[0]); // 张三
  // print(l1[1]); // 20

  // 2、第二种定义 List 的方式 指定类型
  // var l2 = <String>["张三", "李四"];
  // print(l2);

  // var l3 = <int>[12, 30];
  // print(l3);

  // 3、第三种定义 List 的方式 增加数据,通过 [] 创建的集合它的容量可以变化
  // var l4 = [];
  // print(l4);
  // print(l4.length);

  // l4.add("张三");
  // l4.add("李四");
  // l4.add(20);
  // print(l4);
  // print(l4.length);

  // var l5 = ["张三", 20, true];
  // l5.add("李四");
  // l5.add("zhaosi");
  // print(l5);

  // 4、第四种定义 List 的方式
  // var l6 = new List();  // 在新版本的 Dart 里面没法使用这个方法了

  // var l6 = List.filled(2, "");  // 创建一个固定长度的集合
  // print(l6);
  // print(l6[0]);

  // l6[0] = "张三";   // 修改集合的内容
  // l6[1] = "李四";
  // print(l6);  // [张三, 李四]
  // l6.add("王五");  // 错误写法 通过 List.filled 创建的集合长度是固定,没法增加数据

  // 通过 List.filled 创建的集合长度是固定
  // var l6 = List.filled(2, "");
  // print(l6.length);
  // l6.length = 0;  // 修改集合的长度   报错

  // var l7 = <String>["张三", "李四"];
  // print(l7.length);  // 2
  // l7.length = 0;  // 可以改变的
  // print(l7);  // []

  var l8 = List<String>.filled(2, "");
  l8[0] = "string";
  // l8[0] = 222;
  print(l8);
}

Maps(字典)

void main() {
  // 第一种定义 Maps 的方式
  // var person = {
  //   "name": "张三",
  //   "age": 20,
  //   "work": ["程序员", "送外卖"]
  // };

  // print(person);
  // print(person["name"]);
  // print(person["age"]);
  // print(person["work"]);

  // 第二种定义 Maps 的方式
  var p = new Map();
  p["name"] = "李四";
  p["age"] = 22;
  p["work"] = ["程序员", "送外卖"];
  print(p);
  print(p["age"]);
}

相关文章:

  • 嵌入式人工智能应用- 第十章街景分类
  • 现在有分段、句子数量可能不一致的中英文文本,如何用python实现中英文对照翻译(即每行英文对应相应的中文)
  • C# 建造者模式(Builder Pattern)详细讲解
  • 一文了解CAS
  • 图片标注及流程
  • 如何使用Python的matplotlib.pyplot绘制热图和损失图
  • 二进制数(十进制转二进制)
  • ObjC NSString字符串常量编码格式是编译器决定还是ObjC语言规范决定?字符串默认编码?
  • 【VUE】day02-vue过滤器、计算属性、vue-cli、vue组件
  • ST电机库电流采样 三电阻单ADC
  • 【论文笔记】FFA-Net: Feature Fusion Attention Network for Single Image Dehazing
  • Powershell如何查询 windows defender是否开启
  • 数据库小练习
  • 函数式编程定义
  • 【Msq8.0无需登陆进行重置密码】
  • 数学建模 第一节
  • PAT甲级(Advanced Level) Practice 1019 General Palindromic Number
  • Next.js项目MindAI教程 - 第六章:在线咨询功能
  • Keil5下载教程及安装教程(附安装包)
  • 小说文本分析工具:基于streamlit实现的文本分析
  • 在岸、离岸人民币对美元汇率双双升破7.26关口
  • 绿地控股:今年一季度营业收入356亿元,中高层管理人员带头降薪
  • 书业观察|一本书的颜值革命:从毛边皮面到爆火的刷边书
  • 黄晓丹:用“诗心”找到生存的意义
  • 上海112位全国劳动模范和先进工作者接受表彰,樊振东榜上有名
  • 一季度全国城镇新增就业308万人