Flutter 基础语法和关键字

Flutter 基础语法和关键字

1. 变量声明

  • var:自动推断变量的类型。

    var name = 'Flutter';  // 自动推断为String类型
    
  • int, double, String, bool:用于声明不同类型的变量。

    int age = 25;
    double height = 1.75;
    String city = 'Beijing';
    bool isFlutterAwesome = true;
    

2. 运行时常量与编译时常量

  • const:用于编译时确定的常量。

    const pi = 3.14;
    
  • final:用于运行时确定的常量,赋值后不可更改。

    final name = 'John';
    

3.函数

  • 无返回值和有返回值的函数:

    void greet() {
    print('Hello Flutter!');
    }
    
    int add(int a, int b) {
      return a + b;
    }
    
  • 箭头函数:对于单行函数,可以使用箭头语法。

    int multiply(int a, int b) => a * b;
    

4. 控制结构

  • 条件语句

    if (age > 18) {
      print('Adult');
    } else {
      print('Minor');
    }
    
  • 循环

    for (var i = 0; i < 5; i++) {
       print(i);
    }
    
    while (condition) {
       // 执行操作
    }
    

5. 类与对象

  • 类的定义

    class Person {
      String name;
      int age;
    
      Person(this.name, this.age);
    
      void showInfo() {
        print('Name: $name, Age: $age');
      }
    }
    
    void main() {
      var person = Person('Alice', 30);
      person.showInfo();
    }
    
  • 构造函数:通过类的构造函数初始化对象。

6. 可选参数和命名参数

  • 可选参数:用[]包裹,使参数成为可选项。

    void greet([String? name]) {
    print('Hello, $name');
    }
    
  • 命名参数:通过使用{},调用时可以指定参数名。

    void printInfo({required String name, int age = 0}) {
      print('Name: $name, Age: $age');
    }
    

8. 关键字

​ • this:当前类的实例。

​ • new:可以省略的关键字,用于实例化对象。

​ • super:用于调用父类的方法或构造函数。

​ • extends:用于继承类。

​ • implements:用于实现接口。

​ • mixin:用于混入类的行为,类似多重继承。

​ • abstract:声明抽象类,不能被实例化。

​ • static:声明静态成员,属于类而非实例。

​ • final const:用于声明常量。

9. 集合类型

  • List(列表)
    List是有序的集合,允许重复元素。Dart的List可以存储任意类型的对象,是开发中最常用的数据结构之一。

     var numbers = [1, 2, 3, 4, 5];
    
    • 特点:
      • 有序性:元素按插入顺序排列,支持通过索引访问元素。
      • 允许重复:列表中的元素可以重复出现。
      • 类型声明:可以是泛型类型,如List<int>、List<String>。
      • 动态大小:可以使用List的构造函数指定固定大小的列表,或者动态大小的列表。
    • 常用操作
      • 创建列表

        var numbers = [1, 2, 3];  // 自动推断为 List<int>
        var fruits = <String>['apple', 'banana', 'cherry'];
        
      • 访问元素

        var firstFruit = fruits[0];  // 通过索引访问
        
      • 修改元素

        fruits[1] = 'mango';  // 修改索引1位置的值
        
      • 添加元素

        fruits.add('orange');  // 向列表末尾添加
        
      • 删除元素

        fruits.remove('banana');  // 移除指定元素
        
      • 遍历列表

        for (var fruit in fruits) {
          print(fruit);
        }
        
  • Map(字典/哈希表)

    Map是一种键值对存储结构,键是唯一的,而值可以是任意类型。Map类似于其他语言中的哈希表或字典,用于快速查找和存储与键关联的值。

    var person = {'name': 'Alice', 'age': 30};
    
    • 特点:

      • 键值对:Map通过键来查找对应的值,键是唯一的,但值可以重复。

      • 无序性:Map的键值对是无序存储的。

      • 键类型和值类型:Map可以是泛型类型,如Map<String, int>表示键为字符串,值为整数。

    • 常用操作:

      • 创建Map

        var person = {'name': 'Alice', 'age': 30};
        
      • 添加键值对

        person['email'] = 'alice@example.com';
        
      • 访问值

        var name = person['name'];  // 通过键访问值
        
      • 删除键值对

        person.remove('age');
        
      • 遍历Map

        person.forEach((key, value) {
          print('$key: $value');
        });
        
      • 检查键是否存在

        var hasName = person.containsKey('name');
        
  • Set(集合)
    Set是一种无序且元素唯一的集合,主要用于存储没有重复元素的数据。Set的查找、插入、删除操作的效率较高,尤其在需要保证唯一性的场景下非常适用。

    var uniqueNumbers = {1, 2, 3, 4, 5};
    
    • 特点:

      • 无序性:Set中的元素没有固定的顺序。
      • 唯一性:每个元素都是唯一的,不能重复。
      • 高效操作:Set的插入和查找操作非常高效。
    • 常用操作:

      • 创建集合:

        var uniqueNumbers = <int>{1, 2, 3, 4};
        
      • 添加元素

        uniqueNumbers.add(5);  // 添加元素
        
      • 删除元素

        uniqueNumbers.remove(2);  // 删除元素
        
      • 检查元素

        var containsThree = uniqueNumbers.contains(3);  // 检查是否包含
        
      • 集合运算

        • 交集

          var setA = {1, 2, 3};
          var setB = {3, 4, 5};
          var intersection = setA.intersection(setB);  // 结果:{3}
          
        • 并集

          var union = setA.union(setB);  // 结果:{1, 2, 3, 4, 5}
          
  • Dart 集合类型对比总结

    类型是否有序是否允许重复常用场景
    List有序允许需要按顺序存储和访问数据
    Set无序不允许需要唯一性保证的数据集合
    Map无序(键)不适用快速查找键对应的值

10. 异常处理

  • try-catch-finally:用于捕获和处理异常。

    try {
      var result = 10 ~/ 0;
    } catch (e) {
      print('Error: $e');
    } finally {
      print('This will always execute');
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值