前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dart语言详解(一)——详细介绍

Dart语言详解(一)——详细介绍

作者头像
Demo_Yang
发布2020-03-20 17:36:55
1.2K0
发布2020-03-20 17:36:55
举报
文章被收录于专栏:yang0rangeyang0range
之前,我们一直在介绍Flutter相信大家对Flutter有一个总体的认识,,那么现在我们就要介绍一下Flutter使用的编程语言Dart

Flutter的特性离不开Dart特别是让很多人都非常喜欢的热重载功能,很大的原因就是因为Flutter使用了Dart,那么就通过这一篇文章了解一下,我们一起了解一下什么是Dart

Dart的历史

Dart 1.0是于2013年11月14日由谷歌发布的,由Lars Bak和Kasper Lund创建。它旨在帮助开发人员构建现代的web和移动应用程序。它涵盖了客户机、服务器和现在的Flutter移动设备。它提供了一系列工具,包括虚拟机、核心库和包管理存储库。

什么是Dart?

Dart 是由谷歌开发的通用的编程语言,它常用于构建web、服务器、桌面和移动应用程序。

Dart是一种简洁、清晰、基于类的面向对象的语言,它是基于JavaScript的但是结构要比JavaScript要多。

Dart是一种面向对象的、类定义的、垃圾回收语言。它支持接口、mixin、类对象,具有化泛型、静态类型等。

面向对象

对于面向对象这个概念,相信了解Java的同学对这个概念一定不会陌生。

例如:我们有个Person Object他有很多特征和行为。 这些都是这个Person Object的属性。 也就是因为有了这些特征,行为等等才决定了这个人是谁。

那么回到Dart当中,所有的都是对象,那么在就可以可以跟进对象的属性的特征,方法等等来进行编程。

之所以我们在这里又特别强调了一下面向对象的概念,是因为这个概念在Dart语言当中,至关重要!

重要的几个概念

  1. 在Dart语言中,所有的东西都是对象,无论是变量、数字、函数、null等都是对象,所有的对象都是Object类的子类。
  2. Dart语言是强类型编程,一旦确定了类型,那么就不可以改变变量类型,在编译时会进行语法减产,但是Dart允许弱类型语言式的编程。
  3. Dart代码在运行前解析,指定数据类型和编译时常量,可以提高运行速度。
  4. Dart语言的统一入口是main函数。
  5. Dart的私有特性是在变量或者函数名前面加上下划线_。
  6. Dart支持async/await异步处理。

Dart的部分特性

1.Dart是AOT(Ahead Of Time)编译的,可编译成快速,可预测的本地代码。

2.Dart可以JIT(Just In Time)编译,开发周期快,为Flutter热重载提供基础。

3.Dart可以轻松创建60fps运行的流畅动画和转场。

4.Dart的声明式编程布局,易于阅读和可视化,不需要单独的声明式布局语言,如:XML,JSX。

5.Dart非常易于学习,具有静态和动态语言,编程人员都熟悉的特性。

Flutter为什么选择使用Dart?

相信,看过上面的内容的小伙伴,多多少少对于Dart有个简单的认识了,那么为什么Flutter为什么采用Dart语言呢?

可以归结为以下的三个方面:

优化内存

Flutter框架使用函数式流,它重度依赖底层内存分配器对小量的、短生命周期内存分配的有效处理,在缺乏这种特性的语言中Flutter无法有效地工作。

开发者生产效率

Flutter的一个主要的价值主张就是节省工程资源,开发者通过同一套代码库可以实现iOS和Android两个平台的应用开发工作。使用高产的语言提高了开发效率,也使得Flutter更具吸引力,这对于我们框架团队和开发者都异常重要。 构建Flutter主体的语言和我们提供给用户的是相同的,所以我们需要在100k行代码的基础上保证高效,并且保证不牺牲framework和widgets对读者的可读性。

面向对象

对于Flutter,我们想要一个能够符合Flutter问题域的语言,即创造视觉用户体验,通过面向对象语言构建用户界面框架,业内已经有了几十年的经验。当然我们可以使用非面向对象的语言,这将意味着重复发明轮子来解决几个艰难的问题。此外,大多数的开发者已经拥有面向对象的开发经验,这使得Flutter开发更加易学。

可预期 高性能

通过Flutter,我们想要给开发者赋能,以开发出快速流畅的用户体验。为了达到这一点,我们需要能够在每个动画帧运行大量的代码。这意味着我们需要一种能够同时提供高效和稳定性能的语言,不能有周期性的停顿,否则会造成掉帧。

高效的使用

热重载是Flutter最显著的特性之一,有了这个特性,我们可以快速并且轻松的进行实现、构建UI、添加属性和修复Bug。热重载的加载过程就是通过源代码文件注入在运行的Dart虚拟机当中来工作。

Dart的内置库

包名

描述

dart:asynv

异步编程,提供Future,Stream类

dart:collection

集合

dart:convert

不同类型的字符编码解码

dart:core

Dart语言核心功能,内置类型

dart:html

网页开发用到的库

dart:io

文件读写,IO相关

dart:math

数字常量以及函数,随机算法等

dart:svg

事件和动画矢量图支持

最后

要想学Flutter,先学Dart

通过这篇文章,我们详细的介绍了一下Dart语言的“前世今生”。接下来,我们要着重的介绍一些Dart的语法,只有了解了相应的语法啊,才能读懂和写出代码,想要学习的小伙伴,请持续关注吧!

Flutter已经是Top20的软件库,通过接下来的一系列的文章,希望我和大家一起来学习Flutter,一起进步,一起有所收获,掌握未来技术主流的主动权!

有什么好的建议,意见,想法欢迎给我留言!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dart的历史
  • 什么是Dart?
    • 面向对象
      • 重要的几个概念
        • 优化内存
        • 开发者生产效率
        • 面向对象
        • 可预期 高性能
        • 高效的使用
    • Dart的部分特性
    • Flutter为什么选择使用Dart?
    • Dart的内置库
    • 最后
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档