1 概述

1.1 从一个简单的Dart 程序开始

// Define a function.
void printInteger(int aNumber) {print('The number is $aNumber.'); // Print to console.
}// This is where the app starts executing.
void main() {var number = 42; // Declare and initialize a variable.printInteger(number); // Call a function.
}

// 注释

以双斜杠开头的一行语句称为单行注释。Dart 同样支持多行注释和文档注释。

void

一种特殊的类型,表示一个值永远不会被使用。类似于 main() 和 printInteger() 的函数,以 void 声明的函数返回类型,并不会返回值。

int

另一种数据类型,表示一个整型数字。 Dart 中一些其他的内置类型包括 String、List 和 bool。

42

表示一个数字字面量。数字字面量是一种编译时常量。

print()

一种便利的将信息输出显示的方式。

‘…’ (或 “…”)

表示字符串字面量

$variableName (或 ${expression})

表示字符串插值:字符串字面量中包含的变量或表达式

main()

一个特殊且 必须的 顶级函数,Dart 应用程序总是会从该函数开始执行。

var

用于定义变量,通过这种方式定义变量不需要指定变量类型。

1.2 Dart 语言特性

  • 所有变量引用的都是 对象,每个对象都是一个 类 的实例。数字、函数以及 null 都是对象。除去 null 以外(如果你开启了 空安全), 所有的类都继承于 Object 类。
  • 尽管 Dart 是强类型语言,但是在声明变量时指定类型是可选的,因为 Dart 可以进行类型推断。在上述代码中,变量 number 的类型被推断为 int 类型。
  • 如果你开启了 空安全,变量在未声明为可空类型时不能为 null。你可以通过在类型后加上问号 (?) 将类型声明为可空。例如,int? 类型的变量可以是整形数字或 null。如果你 明确知道 一个表达式不会为空,但 Dart 不这么认为时,你可以在表达式后添加 ! 来断言表达式不为空(为空时将抛出异常)。例如:int x = nullableButNotNullInt!
  • 如果你想要显式地声明允许任意类型,使用 Object?(如果你 开启了空安全)、 Object 或者 特殊类型 dynamic 将检查延迟到运行时进行。
  • Dart 支持泛型,比如 List<int>(表示一组由 int 对象组成的列表)或 List<Object>(表示一组由任何类型对象组成的列表)。
  • Dart 支持顶级函数(例如 main 方法),同时还支持定义属于类或对象的函数(即 静态 和 实例方法)。你还可以在函数中定义函数(嵌套 或 局部函数)。
  • Dart 支持顶级 变量,以及定义属于类或对象的变量(静态和实例变量)。实例变量有时称之为域或属性。
  • Dart 没有类似于 Java 那样的 public、protected 和 private 成员访问限定符。如果一个标识符以下划线 (_) 开头则表示该标识符在库内是私有的。
  • 标识符 可以以字母或者下划线 (_) 开头,其后可跟字符和数字的组合。
  • Dart 中 表达式 和 语句 是有区别的,表达式有值而语句没有。比如条件表达式 expression condition ? expr1 : expr2 中含有值 expr1 或 expr2。与 if-else 分支语句相比,if-else 分支语句则没有值。一个语句通常包含一个或多个表达式,但是一个表达式不能只包含一个语句。
  • Dart 工具可以显示 警告 和 错误 两种类型的问题。警告表明代码可能有问题但不会阻止其运行。错误分为编译时错误和运行时错误;编译时错误代码无法运行;运行时错误会在代码运行时导致 异常。

2 dart 语言基础

2.1 标识符

标识符是给予程序中元素的名称,如变量,函数等。标识符的规则是,标识符可以包括字符和数字。但是,标识符不能以数字开头。
除下划线(_)或美元符号($)外,标识符不能包含特殊符号。

  • 标识符不能是关键字。

  • 它们必须是唯一的。

  • 标识符区分大小写。

  • 标识符不能包含空格。

2.2 关键字

注意

  • 空白和换行:Dart忽略程序中出现的空格,制表符和换行符。您可以在程序中自由使用空格,制表符和换行符,并且可以自由地以简洁一致的方式格式化和缩进程序,使代码易于阅读和理解。

  • Dart是区分大小写的:Dart区分大小写。这意味着Dart区分大写和小写字符。

  • 声明以分号结尾:每行指令都称为语句。每个dart语句必须以分号(;)结尾。单行可以包含多个语句。但是,这些语句必须用分号分隔。

2.3 注释

注释是提高程序可读性的一种方法。注释可用于包含有关程序的其他信息,如代码的作者,有关函数/构造的提示等。编译器会忽略注释。

Dart支持以下类型的注释

  • 单行注释(//) 和行尾之间的任何文本都被视为注释

  • 多行注释(/ /) 这些注释可能跨越多行。

2.4 面向对象编程

Dart是一种面向对象的语言。面向对象是一种遵循真实世界建模的软件开发范例。Object Orientation将程序视为通过称为方法的机制相互通信的对象集合。
对象 - 对象是任何实体的实时表示。 根据Grady Brooch,每个对象必须具有三个功能:

  • 状态 - 由对象的属性描述。

  • 行为 - 描述对象的行为方式。

  • 标识 - 将对象与一组类似此类对象区分开的唯一值。

  • 类 - OOP方面的类是创建对象的蓝图。 类封装了对象的数据。

  • 方法 - 方法促进对象之间的通信。

class TestClass {   void disp() {     print("Hello World");}
}
void main() {   TestClass c = new TestClass();   c.disp();
}

2.5 数据类型

数字

Dart中的数字用于表示数字文字。Dart有两种数字类型:

  • 整数 - 整数值表示非小数值,即没有小数点的数值。 例如,值10是整数。整数文字使用 int 关键字表示。

  • 浮点型 - Dart也支持小数数值,即带小数点的值。 Dart中的Double数据类型表示64位(双精度)浮点数。例如,值10.10。关键字 double 用于表示浮点文字。

字符串

字符串代表一系列字符。例如,如果要存储一些数据,如名称,地址等,则应使用字符串数据类型。Dart字符串是一系列UTF-16代码单元。 Runs 用于表示UTF-32代码单元序列。

关键字 String 用于表示字符串文字。字符串值嵌入单引号或双引号中。

布尔

布尔数据类型表示布尔值true和false。Dart使用 bool 关键字表示布尔值。

列表和map

数据类型列表和映射用于表示对象的集合。一个 列表 是对象的有序组。Dart中的List数据类型与其他编程语言中的数组概念同义。的 map 数据类型表示一组值作为键-值对。dart:core 库分别使创建和这些集合的操作通过预定义列表和map类。

动态类型

Dart是一种可选类型语言。如果未明确指定变量的类型,则变量的类型是 动态的 。dynamic 关键字也可以用来作为一种类型的注释明确。

Dart | Dart 语言基础知识梳理相关推荐

  1. 嵌入式C语言基础知识梳理

    该图是关于C语言基础知识的树状结构图,也许里面有些地方看起来不够主流,但是可能更合理.以后将会对该图的所有细节知识点以通俗易懂的方式逐个梳理,敬请关注!

  2. C语言基础知识梳理<3>

    目录 1.前言 2.字符串 3.转义字符 4. 注释 5.简单语句 选择语句 循环语句 ​ 6.函数 数组 7.操作符 8.关键字 9.#define定义常量和宏 10.结束语 1.前言 这次我们还是 ...

  3. C语言基础知识总结大全(建议收藏)

    前言:C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭! 1 算法结构 一.顺序结构.选择结构.循环结构:二.循环结构又分 ...

  4. python入门题目及答案_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

  5. python理论知识选择题_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

  6. C#基础知识梳理系列二:C#的演绎大师:类型

    C#基础知识梳理系列二:C#的演绎大师:类型 摘 要 如果说C#是CLR特邀演员阵容之一,那类型class绝对是C#的演绎/演艺大师.不朽灵魂!它不仅演绎了C#的豪放,也演艺了C#的柔美.时而恢弘.时 ...

  7. 计算机文化基础知识梳理,计算机文化基础知识梳理.doc

    计算机文化基础知识梳理 一.单选题: 1.中央处理器(CPU)主要是由(C )组成的. A.内存储器和控制器 B.内存储器和运算器 C.控制器和运算器 D.控制器.存储器和运算器 2.计算机软件一般可 ...

  8. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  9. Python基础知识梳理(一)

    Python基础知识梳理: 转载于:https://blog.51cto.com/10412806/2095116

  10. C#基础知识梳理系列十:异常处理 System.Exception

    C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...

最新文章

  1. MySQL下的NoSQL解决方案HandlerSocket
  2. “让技术做好事”,最特殊的创投在大湾区成立
  3. CSP认证201503-1 图像旋转[C++题解]:模拟
  4. 2021阿里巴巴研发效能峰会来啦!
  5. th标签能包裹select吗_电影《八佰》过后,他能摘掉马思纯前男友标签了吗?
  6. 【JVM】强引用、软引用、弱引用、虚引用分别是什么
  7. 谷歌推出针对AI歧视的新课程!60分钟的ML公平自学训练模块 | 资源
  8. C/C++深度分析(二)
  9. 张小龙《微信背后的产品观》
  10. 各种数值积分方法总结(从梯形积分、辛普森积分到龙贝格积分、自适应积分、高斯积分等)
  11. 网络空间安全现状与国家战略
  12. 把你的 Mac 从 Catalina 降级回 Mojave 系统的避坑指南
  13. [slove]Unable to find required classes (javax.activation.DataHandler and javax.m
  14. 将数据表的纵向数据横向显示
  15. vue控件a-date-picker设置默认值的方式以及注意事项
  16. week4——实验题解(csp模拟1)
  17. 牛逼!腾讯竟然打响了反对996的第一枪....
  18. Pandas+Pyecharts | 招聘信息数据可视化
  19. ubuntu下bochs的安装和配置
  20. PRML学习笔记--似然函数到底是什么

热门文章

  1. 含金量高文科竞赛信息资料
  2. 潍坊学院计算机奖学金公示,潍坊学院2018-2019学年国家奖学金答辩会顺利举行
  3. 腾讯前辈熬夜肝了一个月整理的《Linux内核学习笔记》,啃完受益匪浅不走弯路
  4. Java之XML转Json
  5. 以后在校期间的规划计算机专业的,计算机专业职业生涯规划方案书样本.doc
  6. 西门子PLC丨虚拟机运行仿真器供物理主机使用
  7. 渗透测试工程师字典介绍
  8. 一款强大的无损音乐的下载器:洛雪音乐助手手机版
  9. Windows RDP远程桌面优化
  10. PE文件格式详解(0)