- dart入门1(粗略上手,细节不表)
- 一.Hello , Dart !
- Dart语言概览
- 二.Dart变量
- 默认值
- final和const
- 三.内置数据类型
- Number
- String
- Boolean
- List
- Set
- Map
- Rune
- 四.运算符
- 五.控制流程语句
- if else
- for循环
- while do-while
- break和continue
- switch和case
- assert
- 六.所使用的在线编程环境
- 七.所看教程
-
第一个Dart程序
void main() { print('Hello, Dart!'); }
-
下面是官方文档给出的能体现Dart很多基本功能的一段代码
// 定义一个函数 printInteger(int aNumber) { print('The number is $aNumber.'); // 打印到控制台。 } // 应用从这里开始执行。 main() { var number = 42; // 声明并初始化一个变量。 printInteger(number); // 调用函数。 } -
解除了那么多编程语言,也能大概看出这里面有啥元素
-
注释
- 这里用的 //单行注释
-
数据类型
- int 属于内置类型
-
字面量
- 如上面的42
-
字符量常量
- 用单引号括起来 '字符量常量'
-
输出方式
- print()
-
main()
- 程序开始执行函数,该函数是特定的、必须的、顶级函数
-
定义变量
- 用var定义变量
-
字符串插值 这个之前没见过
-
$variableName (或 ${expression})
是包括字符串文字内部的变量或表达式的字符串
-
-
-
来看一些变量
和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(数字类型也不例外)
看到const,就想到C语言里面定义常量,这里也是这样子的,用final和const来定义使用过程中不会被修改的变量
- C和C++
-
刚刚在学习变量的时候就看到一些类型了
现在来看看具体的
-
注意Dart中一切皆对象(类的实例),所以变量可用构造函数初始化
还有一些内置类型拥有自己的构造函数,如Map类型可以用Map()构造一个map变量
- 两种类型
- int
- double
- 可以进行基本运算
- 还可进行很多dart:math库里的运算
-
是一组UTF-16 单元序列
-
通过单引号或双引号创建
-
前面Dart语言概览里面提到,字符串可以通过 ${expression} 的方式内嵌表达式
-
如果表达式是一个标识符,则 {} 可以省略
-
如
main() { var s = 'string interpolation';//interpolation:插值 print('Dart has $s'); }-
运行结果
-
-
-
连接字符串,用+号
main() { var s = 'string'+' '+'interpolation'; print('Dart has $s'); }得到和上面一样的运行结果
-
其他细节浏览了一下
现在要快速上手,先不仔细学了
- 用bool类型表示布尔值,共两个常量
- true
- false
-
Dart 中的 List 字面量非常像 Javascript 中的 array 字面量
var list = [1, 2, 3];
-
索引下标从0开始
下标是从0到list.length-1
-
更多的需要在泛型和集合里面学习
-
通过字面量创建Set的示例
var vegetables ={'bean','parrot','potato','tomato'};
-
key value键值对形式
var vegetables1={ 'one':'bean', 'two':'parrot', 'three':'potato', 'four':'tomato' };Dart 会将 vegetables1类型推断为Map
var vegetables1={ 1:'bean', 2:'parrot', 3:'potato', 4:'tomato' };Dart 会将 vegetables1类型推断为Map
-
可用Map构造函数创建
- Rune 用来表示字符串中的 UTF-32 编码字符
-
算术运算符
-
常规的加减乘除取余
没见过的是那个~/
-
自增自减运算
-
-
关系运算符
就是==,!=那些
-
类型判定运算符
-
这个没见过
-
-
赋值运算符
-
=
-
这个没见过:??=
-
复合赋值运算符
- *=这些
-
-
逻辑运算符
- 或:||
- 且:&&
- 非:!
-
按位和移位运算符
-
条件表达式
- 类似C语言三目运算符
-
级联运算符
- 级联运算符 (..) 可以实现对同一个对像进行一系列的操作。 除了调用函数, 还可以访问同一对象上的字段属性。 这通常可以节省创建临时变量的步骤
-
多数运算符可以被重载
-
Dart的判断条件必须是布尔值
-
和C语言差别不大
-
和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}'); } }
-
- 和C语言差不多
- 和C语言差不多
- 还是差不多
- https://www.dartpad.dev/
- Dart官方文档中文版:https://www.dartcn.com/guides/language/language-tour



