dart入门1

Posted 临风而眠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dart入门1相关的知识,希望对你有一定的参考价值。

dart入门1(粗略上手,细节不表)

一.Hello , Dart !

  • 第一个Dart程序

    void main() {
      print('Hello, Dart!');
    }
    

Dart语言概览

  • 下面是官方文档给出的能体现Dart很多基本功能的一段代码

    // 定义一个函数
    printInteger(int aNumber) {
      print('The number is $aNumber.'); // 打印到控制台。
    }
    
    // 应用从这里开始执行。
    main() {
      var number = 42; // 声明并初始化一个变量。
      printInteger(number); // 调用函数。
    }
    
  • 解除了那么多编程语言,也能大概看出这里面有啥元素

    • 注释

      • 这里用的 //单行注释
    • 数据类型

      • int 属于内置类型
    • 字面量

      • 如上面的42
    • 字符量常量

      • 用单引号括起来 '字符量常量'
    • 输出方式

      • print()
    • main()

      • 程序开始执行函数,该函数是特定的、必须的、顶级函数
    • 定义变量

      • var定义变量
    • 字符串插值 这个之前没见过

      • $variableName (或 ${expression})

        是包括字符串文字内部的变量或表达式的字符串

二.Dart变量

  • 来看一些变量

    和C/C++不一样, dart可以推断类型,所以可以就用var创建变量并初始化

    var name = 'Dart';
    var year = 2011;
    var diameter = 3.1;
    var vegetables=['bean','parrot','potato','tomato'];
    var image = {
      'tags': ['bean'],
      'url' : '//path/bean.png'
    };
    main()
    {
      print('There are some variables above.');
    }
    
  • 注意Dart种一切都是对象,变量仅存储的是对象引用

  • 上面的var name = 'Dart'

    • 变量是name,存储了一个String类型的对象引用,'Dart'是这个'String'类型对象的值
  • 还可以显式声明

    仍以name变量为例,显式声明可以推断出的类型的语法如下:

    String name = 'Dart';
    
  • 如果要明确说明不需要任何类型, 需要使用特殊类型 dynamic

    这样还可以通过指定类型的方式,来改变变量类型。 如果对象不限定为单个类型,可以指定为 对象类型动态类型

    dynamic name = 'Dart';
    

默认值

  • Dart 中一切皆对象

    未初始化的变量默认值是null(数字类型也不例外)

final和const

看到const,就想到C语言里面定义常量,这里也是这样子的,用final和const来定义使用过程中不会被修改的变量

  • C和C++

三.内置数据类型

  • 刚刚在学习变量的时候就看到一些类型了

    现在来看看具体的

  • 注意Dart中一切皆对象(类的实例),所以变量可用构造函数初始化

    还有一些内置类型拥有自己的构造函数,如Map类型可以用Map()构造一个map变量

Number

  • 两种类型
    • int
    • double
  • 可以进行基本运算
  • 还可进行很多dart:math库里的运算

String

  • 是一组UTF-16 单元序列

  • 通过单引号或双引号创建

  • 前面Dart语言概览里面提到,字符串可以通过 ${expression} 的方式内嵌表达式

    • 如果表达式是一个标识符,则 {} 可以省略

    • main()
      {
        var s = 'string interpolation';//interpolation:插值
        print('Dart has $s');
      }
      
      • 运行结果

  • 连接字符串,用+

    main()
    {
      
      var s = 'string'+' '+'interpolation';
      print('Dart has $s');
    }
    

    得到和上面一样的运行结果

  • 其他细节浏览了一下

    现在要快速上手,先不仔细学了

Boolean

  • 用bool类型表示布尔值,共两个常量
    • true
    • false

List

  • Dart 中的 List 字面量非常像 javascript 中的 array 字面量

    var list = [1, 2, 3];
    
  • 索引下标从0开始

    下标是从0到list.length-1

  • 更多的需要在泛型和集合里面学习

Set

  • 通过字面量创建Set的示例

    var vegetables ={'bean','parrot','potato','tomato'};
    

Map

  • key value键值对形式

    var vegetables1={
        'one':'bean',
        'two':'parrot',
        'three':'potato',
        'four':'tomato'
    };
    

    Dart 会将 vegetables1类型推断为Map<String,String>

    var vegetables1={
        1:'bean',
        2:'parrot',
        3:'potato',
        4:'tomato'
    };
    

    Dart 会将 vegetables1类型推断为Map<int,String>

  • 可用Map构造函数创建

Rune

  • Rune 用来表示字符串中的 UTF-32 编码字符

四.运算符

  • 算术运算符

    • 常规的加减乘除取余

      没见过的是那个~/

    • 自增自减运算

  • 关系运算符

    就是==,!=那些

  • 类型判定运算符

    • 这个没见过

  • 赋值运算符

    • =

    • 这个没见过:??=

    • 复合赋值运算符

      • *=这些
  • 逻辑运算符

    • 或:||
    • 且:&&
    • 非:!
  • 按位和移位运算符

  • 条件表达式

    • 类似C语言三目运算符
  • 级联运算符

    • 级联运算符 (..) 可以实现对同一个对像进行一系列的操作。 除了调用函数, 还可以访问同一对象上的字段属性。 这通常可以节省创建临时变量的步骤
  • 多数运算符可以被重载

五.控制流程语句

if else

  • Dart的判断条件必须是布尔值

  • 和C语言差别不大

for循环

  • 和C差别不大

  • 来个例子

    main()
    {
      for (int month = 1; month <= 12; month++) {
       print(month);
      }
    }
    

  • 对Iterable接口对象,可使用forEach()方法

  • 实现了Iterable的类(如List和Set)

    • 可用for - in 迭代操作iteration

      如:

      void main() {
        for (int i = 0; i < 5; i++) {
          print('hello ${i + 1}');
        }
      }
      
      

while do-while

  • 和C语言差不多

break和continue

  • 和C语言差不多

switch和case

  • 还是差不多

assert

六.所使用的在线编程环境

七.所看教程

以上是关于dart入门1的主要内容,如果未能解决你的问题,请参考以下文章

Flutter入门Dart语言:控制流语句的基本用法

dart入门1

Dart入门语言概况

Dart入门语言特性库异步编程

Flutter入门:dart基础

Dart 语言基础入门 Dart 语言核心库一览