Dart基础语法简介

待兔
• 阅读 1288

Dart基础系列:

一、简介

1、概述:

  • Dart是Google发布的一门开源编程语言
  • Dart初期目标是成为下一代的web开发语言(没玩过JavaScript)
  • Dart目前已可用于全平台开发
  • Dart是一门面向对象的编程语言

2、应用场景:

  • Web开发(有JavaScript)
  • 跨平台移动应用开发(Flutter)
  • 脚本或服务器开发(有Java、Python)

3、版本:

  • Dart1.x为稳定版
  • Dart2.x目前为开发版本(_当前总结时间为2019.03.28_)
  • 本学习系列使用Dart2进行总结

5、Dart语言特性:

  • 所有能够使用变量引用的都是_对象_, 每个对象都是一个的实例。在 Dart 中 甚至连 数字numbers、方法Functionnull 都是对象。所有的对象都继承于 Object 类。

  • Dart是动态类型语言,使用静态类型可以更清晰的表明你的意图,并且可以让静态分析工具来分析你的代码,会更安全,但这并不是强制性的。(在调试代码的时候你可能注意到 没有指定类型的变量的类型为 dynamic。)

  • Dart 在运行之前会先解析你的代码。你可以通过使用 类型或者编译时常量来帮助 Dart 去捕获异常以及 让代码运行的更高效。

  • Dart中的类和接口是统一的,类即接口,你可以继承一个类,也可以实现一个类(接口),自然也包含了良好的面向对象和并发编程的支持。

  • Dart 支持顶级方法 (例如 main()),同时还支持在类中定义函数。 (静态函数和实例函数)。 你还可以在方法中定义方法 (嵌套方法或者局部方法)。

  • 同样,Dart 还支持顶级变量,以及 在类中定义变量(静态变量和实例变量)。 实例变量有时候被称之为域(Fields)或者属性(Properties)。

  • 和 Java 不同的是,Dart 没有 publicprotected、 和 private 关键字。如果一个标识符以 (_) 开头,则该标识符 在库内是私有的。详情请参考: 库和可见性

  • 标识符_可以以字母或者 \ 下划线开头,后面可以是 其他字符和数字的组合。

  • 有时候 表达式 expression语句 statement 是有区别的,所以这种情况我们会分别指明每种情况。

  • Dart 工具可以指出两种问题:警告和错误。 警告只是说你的代码可能有问题, 但是并不会阻止你的代码执行。 错误可以是编译时错误也可以是运行时错误。遇到编译时错误时,代码将 无法执行;运行时错误将会在运行代码的时候导致一个 异常

  • 编程语言并不是孤立存在的,Dart也是这样,他由语言规范、虚拟机、类库和工具等组成:
    · SDK:SDK 包含 Dart VM、dart2js、Pub、库和工具。
    · Dartium:内嵌 Dart VM 的 Chromium ,可以在浏览器中直接执行 dart 代码。
    · Dart2js:将 Dart 代码编译为 JavaScript 的工具。
    · Dart Editor:基于 Eclipse 的全功能 IDE,并包含以上所有工具。支持代码补全、代码导航、快速修正、重构、调试等功能。

5、Dart资源:

二、搭建开发环境

1、SDK安装:

  • Windows平台:choco install dart-sdk

  • Linux平台:sudo apt-get install dart

  • Mac平台:``` brew install dart --devel

    1、Mac上要先安装homebrew,才能通过brew来安装dart```
    //安装1.x稳定版本
    brew tap dart-lang/dart
    brew install dart 

    //安装2.x开发版本 brew install dart --devel 2、验证: brew info dart

    *   `Homebrew`无法安装成功:```
        //在终端官网指令
        /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
        //提示如下类似的错误:
        error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
        fatal: The remote end hung up unexpectedly
        fatal: early EOF
        fatal: index-pack failed
        Failed during: git fetch origin master:refs/remotes/origin/master --tags --force 
        ```**解决办法:**修改 host 配置,在终端中输入下列指令,打开编辑文件,或快捷键`command+shift+G` 打开`/etc/hosts` 文件中,修改添加`github.com`的映射IP。```
        sudo vi /etc/hosts 
        ```按 s键 进入编辑模式,在最下面添加 `192.30.253.113 github.com`  
    
        ![](https://img-hello-world.oss-cn-beijing.aliyuncs.com/0647ec6bbb6def5baafceafc81f67a18.png)
    
        编辑host
    
    
    再次尝试终端输入Homebrew官网指令,即可成功。  
    参考:[https://www.cnblogs.com/divebombchen/p/10491844.html](https://links.jianshu.com/go?to=https%3A%2F%2Fwww.cnblogs.com%2Fdivebombchen%2Fp%2F10491844.html)

2、IDE安装:

  • IntelliJ iDEA,Androidstudio
  • VS Code
  • Sublime Text、Atom

以Androidstudio为例:
在Pligins中进行Dart插件搜索:

Dart基础语法简介

Dart插件搜索

三、总结概述:

在后面的文章主要总结Dart语法的以下内容:

  • 关键字
  • 数据类型
  • 操作符
  • 控制语句
  • 函数(方法)
  • 面向对象
  • 泛型
  • 库和可见性
  • 异常
  • 元数据
点赞
收藏
评论区
推荐文章
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Souleigh ✨ Souleigh ✨
2年前
Dart开发环境配置
一.Windows环境1.choco安装DartSDK建议直接使用choco安装,关于choco如何使用可以参照https://chocolatey.org/(https://chocolatey.org/)官方文档地址:https://dart.dev/getdartinstal
Charles14 Charles14
1年前
Dart中一个类实现多个接口以及Dart中的 Mixins
一、Dart中一个类实现多个接口abstractclassA{Stringname;printA();}abstractclassB{printB();}classCimplementsA,B{
亚瑟 亚瑟
1年前
Flutter - 深入理解Dart虚拟机启动
基于Flutter1.5,从源码视角来深入剖析引擎启动中的Dart虚拟机启动流程,相关源码目录见文末附录一、概述1.1Dart虚拟机概述Dart虚拟机拥有自己的Isolate,完全由虚拟机自己管理的,Flutter引擎也无法直接访问。Dart的UI相关操作,是由RootIsolate通过Dart的C调用,或者是发送消息通知的方式
浩浩 浩浩
1年前
【Flutter 实战】Dart语言简介
1.4Dart语言简介在之前我们已经介绍过Dart语言的相关特性,读者可以翻看一下,如果读者已经熟悉Dart语法,可以跳过本节,如果你还不了解Dart,也不用担心,按照笔者经验,如果你有过其他编程语言经验(尤其是Java和JavaScript)的话会非常容易上手Dart。当然,如果你是iOS开发者,也不用担心,Dart中也有一些与Swift比较相似的特
Souleigh ✨ Souleigh ✨
2年前
Dart 基础
Dart基础1.类型dartStringint整数值,其取值通常位于253和253之间double64bit(双精度)浮点数,符合IEEE754标准。DateTimeMap是一个键值相关的对象。Function可以赋值给变量,也可以当作其他方法的参数。可使用胖箭头。可选位置参
Stella981 Stella981
1年前
Flutter区分开发和生产环境
TL;DRfinalisProdbool.fromEnvironment('dart.vm.product');config文件示例(config.dart)class_Config{finalisProdbool.fromEnvironment('dart.vm.product
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
1年前
30行代码,让27吨发电机原地爆炸
!(https://oscimg.oschina.net/oscnet/7870532738a44956b4d500c0fd593393.png)!(https://oscimg.oschina.net/oscnet/57d74fea79cb44cdae32de437abdff97.png)!(https://oscimg
helloworld_34035044 helloworld_34035044
6个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为