美文网首页
Dart语法基础-1基础语法

Dart语法基础-1基础语法

作者: tp夕阳武士 | 来源:发表于2020-09-08 11:26 被阅读0次

    1.main函数

    在VSCode中新建一个helloWorld.dart文件,添加下面的内容

    main(List<String> args) {
      print('Hello World');
    }
    

    2. 程序的分析

    • Dart语言的入口也是main函数,并且必须显示的进行定义;
    • Dart的入口函数main是没有返回值的;
    • 传递给main的命令行参数,是通过List<String>完成的.
    • 定义字符串的时候,可以使用单引号或双引号;
    • 每行语句必须使用分号结尾,类似于OC语法的结尾;

    3.定义变量

    3.1明确声明

    明确声明的格式:

    变量类型 变量名称 = 赋值;
    

    示例代码:

    String name = 'coderwhy';
    int age = 18;
    double height = 1.88;
    print('${name}, ${age}, ${height}'); // 拼接方式后续会讲解
    

    注意事项: 定义的变量可以修改值, 但是不能赋值其他类型

    String content = 'Hello Dart';
    content = 'Hello World'; // 正确的
    content = 111; // 错误的, 将一个int值赋值给一个String变量
    
    3.2类型推导(Type Inference)

    类型推导声明变量的方式, 格式如下:

    var/dynamic/const/final 变量名称 = 赋值;
    
    3.2.1 var的使用

    var的使用示例:

    • runtimeType用于获取变量当前的类型
    var name = 'coderwhy';
    name = 'kobe';
    print(name.runtimeType); // String类型
    

    var的错误用法:

    var age = 18;
    age = 'why'; 
    //语法错误,因为第一行代码已经推断age是int类型
    //第二行代码再为age赋值String类型,编译错误;
    
    3.2.2dynamic的使用

    dynamic 类似于Swift语法中的任意类型:Any

    dynamic name = 'coderwhy';
    print(name.runtimeType); // String
    name = 18;
    print(name.runtimeType); // int
    
    3.2.3final&const的使用

    final和const都是用于定义常量的, 也就是定义之后值都不可以修改

    final name = 'coderwhy';
    name = 'kobe'; // 错误做法
    
    const age = 18;
    age = 20; // 错误做法
    

    final和const有什么区别呢?

    • const在赋值时, 赋值的内容必须是在编译期间就确定下来的
    • final在赋值时, 可以动态获取, 比如赋值一个函数
    
    main(List<String> args) {
      const name = getName(); // 错误的做法, 因为要执行函数才能获取到值
      final name = getName(); // 正确的做法
    }
    
    String getName() {
      return 'coderwhy';
    }
    
    

    const放在赋值语句的右边,可以共享对象,提高性能:

    • identical(a,b); // 比较两个实例是不是同一个地址;
    class Person {
      const Person();
    }
    
    main(List<String> args) {
      final a = const Person();
      final b = const Person();
      print(identical(a, b)); // true
    
      final m = Person();
      final n = Person();
      print(identical(m, n)); // false
    }
    

    相关文章

      网友评论

          本文标题:Dart语法基础-1基础语法

          本文链接:https://www.haomeiwen.com/subject/rpudektx.html