<Dart基础>Dart简介

待兔
• 阅读 1530

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`  
    
        编辑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语法的以下内容:

  • 关键字
  • 数据类型
  • 操作符
  • 控制语句
  • 函数(方法)
  • 面向对象
  • 泛型
  • 库和可见性
  • 异常
  • 元数据
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3年前
Dart基础&gt;Dart语法(上)
Dart基础系列:Dart简介(https://www.jianshu.com/p/c749f40828a5)Dart语法(上)(https://www.jianshu.com/p/6b5689342e24)<基础Dart语法(下)(https://www.jianshu.com/p/7c3eba46e679)说明:
顺心 顺心
3年前
Dart语言基础,Dart 基础
1.Dart的main方法有两种声明方式//第一种声明方式main(){print("helloworld");//打印};//第二种声明方式.如果有学过typeScript或其它语言的同学都明白下面代码的意思,这个方法是有没返回值的。voidmain(){print("helloworld");};2.
待兔 待兔
3年前
Dart基础语法简介
Dart基础系列:Dart简介(https://www.jianshu.com/p/c749f40828a5)Dart语法(上)(https://www.jianshu.com/p/6b5689342e24)<基础Dart语法(下)(https://www.jianshu.com/p/7c3eba46e679)一、简
待兔 待兔
3年前
Dart基础>Dart语法(下)
前文链接:Dart简介(https://www.jianshu.com/p/c749f40828a5)Dart语法(上)(https://www.jianshu.com/p/6b5689342e24)内容:函数(方法)函数定义及各类函数;函数参数;闭包面向对象定义;构造函数;成员(变
浩浩 浩浩
3年前
【Flutter 实战】Dart语言简介
1.4Dart语言简介在之前我们已经介绍过Dart语言的相关特性,读者可以翻看一下,如果读者已经熟悉Dart语法,可以跳过本节,如果你还不了解Dart,也不用担心,按照笔者经验,如果你有过其他编程语言经验(尤其是Java和JavaScript)的话会非常容易上手Dart。当然,如果你是iOS开发者,也不用担心,Dart中也有一些与Swift比较相似的特
Stella981 Stella981
3年前
Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
!(https://oscimg.oschina.net/oscnet/b8c8b22b9f44bd806c26b486e1893a263a4.jpg)这是我的第56篇原创文章!(https://oscimg.oschina.net/oscnet/8bf00bc92f6a1cd46596ee44bac64a801ae.pn
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这