写在前面

本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。
Flutter教程在这里

Dart的一些重要概念

当你学习Dart语言时,记住这些事实和概念:

  • 每个变量都是一个对象,而每个对象都是类的实例。甚至数字、函数和null都是对象。所有对象都继承自Object
  • 尽管Dart是强类型的,但是类型注释是可选的,因为Dart可以推断类型。在之前上一节的代码中var number = 42;,number被推断为int类型。当你不想显示地声明一个变量的类型,那么您可以使用特殊类型dynamic
  • Dart是支持泛型,如List<int>(一个数字列表)或者List<dynamic>(一个任何类型的列表).
  • Dart支持顶级函数(如main()),以及绑定到类或对象(分别是静态方法和实例方法)的函数。您还可以在函数(嵌套或局部函数)中创建函数。
  • 类似地,Dart支持顶级变量,以及绑定到类或对象(静态和实例变量)的变量。实例变量有时被称为字段或属性。
  • 与Java不同的是,Dart没有关键字public、protected和private。如果标识符以下划线(_)开头,则该标识符对其库是私有的。 在之后的教程中我们会详细讲解。
  • 标识符(变量名、方法名、类名)可以以字母或下划线(_)开头,后面的可以是这些字符加上数字的任何组合。
  • Dart工具可以报告两种问题:警告和错误。警告只是表明您的代码可能不工作,但它们不会阻止您的程序执行。错误可以是编译时错误,也可以是运行时错误。编译时错误阻止了代码的执行;运行时错误导致代码执行时引发异常。

关键字

abstract do import super
as dynamic in switch
as else interface sync*
async enum is this
async* export library throw
await external mixin true
break extends new try
case factory null typedef
class final part void
const finally rethrow while
continue for return with
covariant get set yield
default if static yield*
deferred implements

以上的字段均为保留字段,不能用于标识符。

变量

下面的代码展示了创建一个变量并进行初始化:

var name = 'Bob';

变量存储引用。名为name的变量包含对字符串对象的引用,值为“Bob”。
变量name的类型被推断为String,但是您可以通过指定它来更改该类型。如果对象不限于单个类型,则指定对象或动态类型,遵循设计指导原则。

dynamic name = 'Bob';

另一种方式是显式声明要推断的类型:

String name = 'Bob';

默认值

未初始化的变量的初始值为null。甚至具有数字类型的变量最初也是null,因为数字就像dart中的其他东西一样也是对象。

int lineCount;
assert(lineCount == null);

注意:在生产代码中,assert()调用将被忽略。在开发期间,assert(condition)抛出异常,除非条件为真。

Dart In Action -Dart快速入门(二)相关推荐

  1. Dart语言——45分钟快速入门(下)

    类和对象 类的定义 // Dart中定义一个类 class Person {String name;int age;Person(String name, int age) {this.name = ...

  2. Dart语言——45分钟快速入门(上)

    文章目录 前言 视频课程 环境准备 安装Dart SDK 配置环境变量 配置 VSCode 编辑器 测试环境 基础语法 代码注释 内置数据类型 变量与常量 定义变量 定义常量 内置类型的常用操作 数值 ...

  3. Vue 基础快速入门(二)

    Vue 组件化编程 模块, 组件, 模块化与组件化 模块 理解:向外提供特定功能的 js 程序, 一般就是一个 js 文件 为什么:js 文件很多很复杂 作用:复用 js,简化 js 的编写, 提高 ...

  4. jquery 快速入门二

    ---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...

  5. ElasticSearch快速入门二(Restful介绍)

    本节课从三个方便讲解 什么是restful ? API: Application Programming Interface的缩写,中文意思就是应用程序接口. ●XML: . 可扩展标记语言,是一种程 ...

  6. Webpack5快速入门 (二) CSS相关loader的使用及兼容性处理 手把手带你打开前端工程化的大门

    目录 一.CSS-Loader

  7. CarSim仿真快速入门(二十三)-CarSimSimulink联合仿真中的 S-Function模块

    Simulink S-Function模块 为了与外部软件如Simulink一起工作,VS数学模型从一个包装模块中运行,该模块将使用的VS库连接到其他环境.封装器以该环境的标准方式与调用环境进行通信. ...

  8. CarSim仿真快速入门(二十二)—CarSim2022中设置IO写出

    VS数学模型可以通过VS浏览器启动和控制,这样就不需要其他软件了.仿真活动的主要产品是一个输出文件,其中包含感兴趣的变量的时间历史,可以用VS Visualizer绘制或用于生成动画.输出也可以自动写 ...

  9. CarSim仿真快速入门(二十六)-Euro NCAP VRU AEB 测试

    目录 Euro NCAP VRU AEB 背景 行人目标 VUT 和行人目标设置 自动 VUT 和行人目标定位 测试评分

最新文章

  1. 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取
  2. History(历史)命令用法
  3. boost::geometry::centroid用法的测试程序
  4. 第三次学JAVA再学不好就吃翔(part88)--ArrayList嵌套ArrayList
  5. 手把手教你写DI_0_DI是什么?
  6. 如何处理班级过多的问题
  7. 用Visual Studio 2019连接 WSL来编译调试C/C++项目
  8. IIS32位,64位模式下切换
  9. Golang入门~搭建Beego
  10. python之解决Cannot uninstall ‘certifi‘问题
  11. 大数据分析对企业运营的价值体现
  12. (android开发http拦截)fiddler2抓包工具
  13. FeedingBottle 3.2另一个无线破解GUI
  14. 计算机用户要以ADSL,建设项目进度控制超星尔雅期末答案
  15. VCC、VDD、VSS、GND分别代表什么呢?
  16. mysql 查询多个号段_SQL查询连续号码段的巧妙解法
  17. IE浏览器插件ActiveX的制作以及Google 调用此插件
  18. 12生肖年份和星座组合图
  19. win10计算机系统优化设置,win10系统电脑如何进行系统优化
  20. 网络通过mac定位机器_如何设置Mac以充当网络时间机器驱动器

热门文章

  1. java void传参,Java中的传参
  2. python pandas DataFrame 修改数据
  3. ubuntu 安装 python3.6.8
  4. 前端入门 前端自学路线 web开发前端如何学习
  5. LeetCode 547. Friend Circles--Python解法--笔试算法题
  6. Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序
  7. 9个数 横竖和相等 php,[境遇之数]横竖都是伤,不如一起扛(Ep9-12集剧评)
  8. 二自由度云台扫描算法_二自由度云台的机器视觉控制
  9. java计算程序运行时间_C#里面的时间,如何计算一个程序运行花费的时间
  10. join控制线程的执行循序 T1 - T2 - T3