Flutter - Dart 基础(数据类型)

简介: 【2月更文挑战第3天】

数据类型

Dart 中的一切皆是对象,包括数字、布尔值、函数等,每个对象都是一个实例,它们都继承于 Object,所以它们的默认值也就是 null

在 Dart 主要有:

  • 字符串类型(String)
  • 数字类型(int、double)
  • 布尔类型(bool)
  • 集合类型(List,Set,Map)
  • Runes 类和 Symbols 类型(后两个用的并不太多)

字符串类型(String)

  • 使用 ''"" 创建,使用带有单引号或双引号的三重引号可以创建多行字符串
    ```js
    // 双引号字符串
    var str1 = "单行字符串";

    // 单引号字符串
    var str2 = '单行字符串';

var str3 = '''
多行字符串
多行字符串
多行字符串
''';
```   
  • 字符串和其他变量或表达式拼接: 使用 ${expression},如果表达式是一个标识符,那么 {} 可以省略

      var name = 'dart';
      var version = '2.1.7';
    
      print('language is ${name}, version is $version'); 
      //language is dart, version is 2.1.7
    
  • 字符串拼接,使用 +

      var str4 = "Hello";
      var str5 = "world";
      var str6 = str4 + ' ' + str5 + ' ';
      print(str6); //Hello world
    

数字类型(int、double)

  • Number 类型有量两种分别是 intdouble
    ```js
    var height = 180;
    print(height.runtimeType); //int
var weight = 70.0;
print(weight.runtimeType);  //double
```
  • 字符串和数字的转化

    • 字符串转数字

        // String -> int
        var height = int.parse("180");
        print(height.runtimeType);  //int
      
        // String -> double
        var weight = double.parse("70.0");
        print(weight.runtimeType);  //double
      
    • 数字转字符串

        // int -> String
        var height = 180.toString();
        print(height.runtimeType);  //String
      
        // double -> String
        var weight = 70.0.toString();
        print(weight.runtimeType);  //String
      
    • 保留小数

        var value = 1.234567;
        print(value.toStringAsFixed(2));  //1.23
      

布尔类型(bool)

bool 类型是编译时常量,分别是:

  • true
  • false

集合类型(List,Set,Map)

List

  • List 的创建

    • 根据类型推导的 List

        var list = [1, 2, 3, 4];
      
    • 明确类型的 List

        List<int> arr = [1, 2, 3, 4];
      
  • List 常用属性

      var list = ["A", "B", "C", "D"];
      //获取list长度
      print(list.length);  //4
      //list是否为空
      print(list.isEmpty);  //false
      //list是否有元素
      print(list.isNotEmpty); //true
      //翻转 
      print(list.reversed); //(D, C, B, A)
      //查看List中是否存在指定元素
      print(list.contains("A")); //true
    
  • List 常用方法

    • 添加新元素到list
        var list = ["A", "B", "C", "D"];
        list.add("E");
        print(list); //[A, B, C, D, E]
      
    • 将另外一个list拼接到当前的list后面

        var list = ["A", "B", "C", "D"];
        var arr = ["X", "Y", "Z"];
        list.addAll(arr);
        print(list); //[A, B, C, D, E, X, Y, Z]
      

      简写(使用扩展操作符(...))

        var arr = ["X", "Y", "Z"];
        var list = ["A", "B", "C", "D", ...arr];
        print(list); //[A, B, C, D, E, X, Y, Z]
      
    • 删除指定元素

        var list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
      
        list.removeAt(5);
        print(list);  //[1, 2, 3, 4, 6, 7, 8, 9]
      
    • 清除所有元素

        list.clear();
        print(list);  //[]
      
    • 使用setRange方法
        //将list中的第一个参数到第二个参数之前的元素替换为mList中的元素
        var list = ["A", "B", "C", "D", "E", "F", "G"];
        var mList = ["x", "y", "z"];
        list.setRange(2, 4, mList);
        print(list); //[A, B, x, y, E, F, G]
      
  • var list = ["A", "BB", "C", "DD", "E", "FF", "G"];
    //获取第一个元素
    print(list.first); //A
    //获取最后一个元素
    print(list.last); //G
    
    //查看List中是否存在指定元素
    print(list.contains("C")); //true
    
  • 遍历

      var list = ["A", "B", "C", "D"];
    
        for (var i = 0; i < list.length; i++) {
         
          print(list[i]);
        }
    
        list.forEach((element) {
         
          print(element);
        });
    
        for (var item in list) {
         
          print(item);
        }
    

Set

  • 使用 {} 创建 Set,是一个元素唯一的无序的集合类型
  • 各个属性、方法同 List

Map

  • 使用 {} 创建 Map

      // 可变Map
      Map map = {
         "key": "value"};
      var map = {
         "key": "value"};
    
      // 不可变Map
      var map = const {
         "key": "value"};
    
      // 设置键值类型
      Map<String, Object> mMap = {
         };
      mMap["str"] = 123;
      mMap["num"] = "123";
    
  • 常用属性方法

      var map = {
         };
      map["name"] = "小明";
      map["age"] = 12;
      print(map); //{name: 小明, age: 12}
    
      // 键值对个数
      print(map.length); //2
      // 是否为空
      print(map.isEmpty); //false
      // 所有key
      print(map.keys); //(name, age)
      // 所有value
      print(map.values); //(小明, 12)
      // 是否包含address
      print(map.containsKey("address")); //false
    
      // 删除键值对
      map.remove("age");
      print(map); //{name: 小明}
    
      // 修改键值对
      map["age"] = 18;
      print(map); //{name: 小明, age: 18}
    
目录
相关文章
|
16天前
|
前端开发 C++ 容器
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
|
6天前
|
Dart 安全
简化代码、提高效率:Dart和Flutter开发小技巧
在日常开发中,我们常常会使用一些常用的技巧或语法糖,以简化代码、提高开发效率。本文将分享一些在Dart和Flutter中常用的小贴士,帮助你更轻松地编写优雅高效的代码。
简化代码、提高效率:Dart和Flutter开发小技巧
|
18天前
|
Dart 前端开发 开发者
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
【4月更文挑战第30天】Dart是Google为Flutter框架打造的高效编程语言,具有易学性、接口、混入、抽象类等特性。本文概述了Dart的基础语法,包括静态类型(如int、String)、控制流程(条件、循环)、函数、面向对象(类与对象)和异常处理。此外,还介绍了库导入与模块使用,帮助开发者快速入门Flutter开发。通过学习Dart,开发者能创建高性能的应用。
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
|
18天前
|
Dart 测试技术 UED
Dart 和 Flutter 错误处理指南 | 最佳实践全解析
深入探索 Dart 和 Flutter 中的错误处理技术,从编译时错误到运行时异常,带你学习如何优雅地处理应用程序中的各种意外情况。了解最佳实践,让你的应用程序稳如磐石,用户体验持续优化!
Dart 和 Flutter 错误处理指南 | 最佳实践全解析
|
18天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
18天前
|
开发框架 Dart Java
Flutter的核心:Dart语言基础——语法与特性深度解析
【4月更文挑战第26天】Flutter框架背后的Dart语言,以其简洁的语法和独特特性深受开发者喜爱。本文深入解析Dart的语法与特性,如类型推导、动态静态类型系统、统一的类接口、访问权限控制以及并发编程支持。了解并掌握Dart,能助开发者更高效地利用Flutter构建高性能移动应用。
|
18天前
|
Dart JavaScript 安全
|
18天前
|
Dart Shell 开发工具
解决windows安装Flutter时出现Unknown operating system. Cannot install Dart SDK.问题
解决windows安装Flutter时出现Unknown operating system. Cannot install Dart SDK.问题
|
18天前
|
JSON Dart 算法
Dart/Flutter工具模块:the_utils
Dart/Flutter工具模块:the_utils
56 0
|
18天前
|
缓存 监控 前端开发
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
【4月更文挑战第30天】本文探讨了Flutter应用启动优化策略,包括理解启动过程、资源加载优化、减少初始化工作、界面布局简化、异步初始化、预加载关键数据、性能监控分析以及案例和未来优化方向。通过这些方法,可以缩短启动时间,提升用户体验。使用Flutter DevTools等工具可助于识别和解决性能瓶颈,实现持续优化。
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略