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的主要内容,如果未能解决你的问题,请参考以下文章