Dart In Action -Dart快速入门(二)
写在前面
本文基本上是将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快速入门(二)相关推荐
- Dart语言——45分钟快速入门(下)
类和对象 类的定义 // Dart中定义一个类 class Person {String name;int age;Person(String name, int age) {this.name = ...
- Dart语言——45分钟快速入门(上)
文章目录 前言 视频课程 环境准备 安装Dart SDK 配置环境变量 配置 VSCode 编辑器 测试环境 基础语法 代码注释 内置数据类型 变量与常量 定义变量 定义常量 内置类型的常用操作 数值 ...
- Vue 基础快速入门(二)
Vue 组件化编程 模块, 组件, 模块化与组件化 模块 理解:向外提供特定功能的 js 程序, 一般就是一个 js 文件 为什么:js 文件很多很复杂 作用:复用 js,简化 js 的编写, 提高 ...
- jquery 快速入门二
---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...
- ElasticSearch快速入门二(Restful介绍)
本节课从三个方便讲解 什么是restful ? API: Application Programming Interface的缩写,中文意思就是应用程序接口. ●XML: . 可扩展标记语言,是一种程 ...
- Webpack5快速入门 (二) CSS相关loader的使用及兼容性处理 手把手带你打开前端工程化的大门
目录 一.CSS-Loader
- CarSim仿真快速入门(二十三)-CarSimSimulink联合仿真中的 S-Function模块
Simulink S-Function模块 为了与外部软件如Simulink一起工作,VS数学模型从一个包装模块中运行,该模块将使用的VS库连接到其他环境.封装器以该环境的标准方式与调用环境进行通信. ...
- CarSim仿真快速入门(二十二)—CarSim2022中设置IO写出
VS数学模型可以通过VS浏览器启动和控制,这样就不需要其他软件了.仿真活动的主要产品是一个输出文件,其中包含感兴趣的变量的时间历史,可以用VS Visualizer绘制或用于生成动画.输出也可以自动写 ...
- CarSim仿真快速入门(二十六)-Euro NCAP VRU AEB 测试
目录 Euro NCAP VRU AEB 背景 行人目标 VUT 和行人目标设置 自动 VUT 和行人目标定位 测试评分
最新文章
- 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取
- History(历史)命令用法
- boost::geometry::centroid用法的测试程序
- 第三次学JAVA再学不好就吃翔(part88)--ArrayList嵌套ArrayList
- 手把手教你写DI_0_DI是什么?
- 如何处理班级过多的问题
- 用Visual Studio 2019连接 WSL来编译调试C/C++项目
- IIS32位,64位模式下切换
- Golang入门~搭建Beego
- python之解决Cannot uninstall ‘certifi‘问题
- 大数据分析对企业运营的价值体现
- (android开发http拦截)fiddler2抓包工具
- FeedingBottle 3.2另一个无线破解GUI
- 计算机用户要以ADSL,建设项目进度控制超星尔雅期末答案
- VCC、VDD、VSS、GND分别代表什么呢?
- mysql 查询多个号段_SQL查询连续号码段的巧妙解法
- IE浏览器插件ActiveX的制作以及Google 调用此插件
- 12生肖年份和星座组合图
- win10计算机系统优化设置,win10系统电脑如何进行系统优化
- 网络通过mac定位机器_如何设置Mac以充当网络时间机器驱动器
热门文章
- java void传参,Java中的传参
- python pandas DataFrame 修改数据
- ubuntu 安装 python3.6.8
- 前端入门 前端自学路线 web开发前端如何学习
- LeetCode 547. Friend Circles--Python解法--笔试算法题
- Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序
- 9个数 横竖和相等 php,[境遇之数]横竖都是伤,不如一起扛(Ep9-12集剧评)
- 二自由度云台扫描算法_二自由度云台的机器视觉控制
- java计算程序运行时间_C#里面的时间,如何计算一个程序运行花费的时间
- join控制线程的执行循序 T1 - T2 - T3