Dart 语言介绍

Dart 是谷歌在 2011 年推出的编程语言,是一种结构化 Web 编程语言,允许用户通过 Chromium 中所整合的虚拟机(Dart VM)直接运行 Dart 语言编写的程序,免去了单独编译的步骤。以后这些程序将从 Dart VM 更快的性能与较低的启动延迟中受益。Dart 从设计之初就为配合现代 web 整体运作而考虑,开发团队也同时在持续改进 Dart 向 JavaScript 转换的快速编译器。Dart VM 以及现代 JavaScript 引擎(V8 等)都是 Dart 语言的首选目标平台。

Dart语言概念重点

  • 每个变量都是一个对象,每个对象是一个类的实例。甚至数字,函数,和null都是对象。所有对象都继承自Object

  • 指定静态类型(如num前面的例子中)讲清意图,用 tools 开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会得到一个特殊的类型: dynamic )

  • Dart解析所有的代码运行之前。可以对Dart提供提示,例如,通过使用类型或编译时间常数来捕获错误或帮助代码运行更快。

  • Dart支持顶级函数(如main())也支持类或者对象(静态和实例方法分别支持)里的函数。还可以在函数里创建函数(嵌套或局部功能)。

  • 类似的,Dart支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。

  • 与Java不同,Dart不具备关键字public,protected和private。如果一个标识符以下划线(_)开始,那么它和它的库都是私有的。

  • 标识符可以字母或(_)开始,或者是字符加数字的组合开头。

  • 有时,判断是一个表达式还是一个语句会很重要,所以我们要准确了解这两个单词。

  • Dart tools可报告两类问题:警告(warning)和错误(error)。警告只是迹象表明,代码可能无法正常工作,但他们不会阻止程序的执行。错误可以是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会导致一个 异常(exception)被抛出。

  • Dart有两种运行模式:生产 (production) 和检查 (checked) 。我们建议在检查模式开发和调试,并将其部署到生产模式。

  • Production mode是Dart程序一个速度优化的默认运行模式。Production mode忽略 断言语句(assert statements) 和静态类型。

  • Checked mode 是开发人员友好的方式,可以帮助你在运行时捕捉一些类型的错误。例如,如果分配一个非数字来声明为一个 num 变量,然后在检查模式会抛出异常。

Dart关键字

abstract continue false new this

as

default final null throw
assert deferred finally operator true
async do for part try
async$ dynamic get rethrow typedef
await else if return var
break enum implements set void
case export import static while
catch external in super with
class extends is switch yield
const factory library sync* yield$
  • 上标1的单词是内置的标识符(built-in identifiers)。避免使用表格内的标识作为符标识,而且从来不使用它们作为类(class)或类型(type)的名称。内置标识符存在,以方便从 JavaScript 到 Dart 的移植。例如,如果一些JavaScript代码中有一个名为工厂的变量,当你将代码移植到 Datr 中,你不必重新命名它。

  • 上标2的单词是的Dart1.0版本之后添加异步支持较新的、有限的保留字。不能使用async,await,或yield作为在标有async,或sync的任何函数体的标识符。欲了解更多信息,请参见 异步性支持(Asynchrony support)

  • 在关键字表中的所有单词都是保留字。不能使用保留字作为标识符。

变量

ex1:

var name = 'along';

变量都是引用,变量name包含对一个String的对象值'along' 的引用

默认值

未初始化的变量具有null 的初始值,即使数字类型最初变量也是null,因为数字也是对象。

final和const:

如果从不打算改变一个变量,使用 final 或者 const 代替 var 或者其他类型。一个 final 变量只能被设置一次;一个 const 变量是一个编译时常数。(延迟初始化变量有助于应用程序启动的更快)

内置类型

  • 数字 number
  • 字符串 strings
  • 布尔 booleans
  • 列表 lists(也称为数组arrays)
  • 图 maps
  • 符号 symbols

Dart语言入门(一)的更多相关文章

  1. Atitit.dart语言的特性  编译时js语言大总结

    Atitit.dart语言的特性  编译时js语言大总结 1. 原型环境1 1.1. Dart可以编译js3 2. 第二个期待的理由是Dart的语言特性,没有什么特别特性好像,类似java c#一小时 ...

  2. Dart 语言简易教程系列

    google Fuchsia系统 及 dart语言简介 在 InteIIiJ IDEA 中搭建 Dart 的开发环境 Dart Linux 开发环境搭建 Dart 语言简易教程(一) Dart 语言简 ...

  3. Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...

  4. 简单易懂的Dart》 - Dart语言中文简明教程

    转自:https://www.blackglory.me/straightforward-dart/ Dart是Google公司发布的网络编程语言,其诞生的目的是为了让广大C类OOP程序员们克服Jav ...

  5. Fluter基础巩固之Dart语言详解<三>

    继续Dart语言的学习,这次过后下次就进入全新的Flutter的学习了,小小的激动.. 操作符重载: C++中也有,咱们来看一下在Dart中是如何来实现的: 比较简单. 异步[重要!]: async和 ...

  6. Fluter基础巩固之Dart语言详解<一>

    在上一篇https://www.cnblogs.com/webor2006/p/11367345.html中咱们已经搭建好了Flutter的开发环境了,而Flutter的开发语言是选用的dart,那么 ...

  7. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  8. 我为什么反对推荐新人编程C/C++语言入门?

    虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情 从03年接触计算机,07年开始接触计算机编程, 期间接触过的技术包括 缓冲区溢出(看高手写的shellcod ...

  9. 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书

    <C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...

随机推荐

  1. Itest(爱测试),最懂测试人的开源测试管理软件隆重发布

    测试人自己开发,汇聚10年沉淀,独创流程驱动测试.度量展现测试人价值的测试协同软件,开源免费   官网刚上线,近期发布源码:http://www.itest.work 在线体验 http://www. ...

  2. asp.net core系列 29 EF模型配置(查询类型,关系数据库建模)

    一.查询类型 此功能是EF Core 2.1中的新功能. EF Core除了实体类型之外,EF Core模型还可以包含查询类型,这些查询类型是针对“未映射到实体类型”的数据获取.比如视图,或只读数据表 ...

  3. 在nuget上发布自己的程序集教程

     前期准备 [1]注册nuget官网账号:注册地址:https://www.nuget.org/ [2]下载Nuget.exe文件:下载地址:https://www.nuget.org/downloa ...

  4. [PHP] sys_get_temp_dir()和tempnam()函数报错与环境变量的配置问题

    1.项目运行过程中遇到个问题,保存临时文件时,一直返回false 2.根据经验这个是在/tmp目录下建立临时文件,所以检查了一遍权限问题,发现权限没有问题 3.查出sys_get_temp_dir() ...

  5. Sentry快速开始并集成钉钉群机器人

    Sentry(直译为:哨兵)是一个开源错误跟踪服务,帮助开发人员实时监控和修复崩溃 Sentry本质上是一种帮助您实时监控和修复崩溃的服务 1.  安装客户端SDK 这里我们安装Java平台的SDK, ...

  6. 联想官方OEM分区制作

    今天,朋友买了一个新的联想电脑,自带出厂系统.进入PE后发现居然有联想官方的OEM分区,于是直接拷贝过来,然后装在另一个电脑里可以正常使用,这里给大家分享一下. 工程下载:         链接:ht ...

  7. python3第一天,随便写写

    哈哈 我滴第一篇博客,不知道咋写,随意看了看别人的博客,我还是不知道咋写,既然是我的博客,那我就把它当随笔写了(这里就是添加随笔...) 也不知道自己说了啥,不过想到了一句话:日记都是写给别人看的.哈 ...

  8. Windows7下chm文件打不开

    从网上下载的CHM文件在Windows7系统中无法显示内容,是因为Windows7系统中的浏览器下载的文件是被默认为锁定的,所以打开以后是无法显示里面的具体内容的,解决的办法: 选中这个CHM文件: ...

  9. Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  10. chrome谷歌浏览器开发者工具-网络带宽控制

    有时候我们想在本地测试一下图片预加载loading的加载情况,如下图: 可无奈一般网络带宽都比较好,基本上看不到效果,图片一下子就加载出来了, 可能这个时候有些小伙伴想到的办法是用定时器延迟加载 其实 ...