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

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

原创
作者头像
Demo_Yang
修改于 2020-03-10 01:56:03
修改于 2020-03-10 01:56:03
1.1K0
举报
文章被收录于专栏:yang0rangeyang0range

想学Flutter,就请关注这个专栏 Flutter系列(一)——详细介绍 Flutter系列(二)——与React Native进行对比 Flutter系列(三)——环境搭建(Windows) Flutter系列(四)——HelloWorld Dart语言详解(一)——详细介绍

文档归档:

https://github.com/yang0range/flutterfile

之前,我们一直在介绍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的一个主要的价值主张就是节省工程资源,开发者通过同一套代码库可以实现iOSAndroid两个平台的应用开发工作。使用高产的语言提高了开发效率,也使得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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Dart语言详解(一)——详细介绍
Flutter的特性离不开Dart特别是让很多人都非常喜欢的热重载功能,很大的原因就是因为Flutter使用了Dart,那么就通过这一篇文章了解一下,我们一起了解一下什么是Dart!
Demo_Yang
2020/03/20
1.5K0
Dart语言详解(一)——详细介绍
Flutter系列(一)——详细介绍
Flutter 是谷歌推出的开发移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面。
Demo_Yang
2020/02/18
1.4K0
【flutter】Dart介绍及flutter环境配置
Dart 是一种面向对象的编程语言,由 Google 开发,用于构建高性能、跨平台的移动、Web 和桌面应用程序。
DevFrank
2024/07/24
2790
【flutter】Dart介绍及flutter环境配置
Dart语言入门指南
Dart是由Google开发的一种通用编程语言,旨在为移动、Web和桌面应用提供优秀的性能和一致的开发体验。Dart语言的设计目标是实现语言的简洁、高效和可扩展性,同时保持易学易用。以下是Dart语言的入门指南,包括环境搭建、基本语法和示例代码。
陆业聪
2024/07/23
3460
Dart语言入门指南
为什么Flutter会选择 Dart ?
许多语言学家认为,一个人说的自然语言会影响他们的思维方式。这个理论适用于计算机语言吗?使用不同编程语言编程的程序员针对问题想出的解决方案经常完全不同。举一个极端的例子,为了程序结构更加清晰,计算机科学家取消了goto语句(这与小说《1984》中的极权主义领导者从自然语言中删除异端词语以消除思维犯罪不太一样,但道理就是这样)。
猿哥
2019/03/13
2.2K0
Dart语言概览
前面对Dart语言的基本语法做了简单介绍,本篇文章我们站在一个更高的维度来聊一聊Dart。
拉维
2019/08/12
1K0
移动跨平台框架Flutter详细介绍和学习线路分享
Flutter是一款移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。 Flutter目标是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。 在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
Android技术干货分享
2019/07/18
2.1K0
移动跨平台框架Flutter详细介绍和学习线路分享
如何快速学一门新语言,以 Dart 为例
世界上没有一种可以各个领域通吃的语言,为了应对不同的场景和需求,我们摆脱不了要学习一门新的语言。最近准备入坑 Flutter(技术储备),学了点 Dart, 一点心得分享给大家。
桃翁
2019/12/04
1K0
Flutter与Dart 入门
Flutter是google推出的,一个使用Dart语言开发的跨平台移动UI框架,通过自建绘制引擎,能高性能、高保真地进行Android和IOS开发。
JadePeng
2018/08/22
1.4K0
Flutter与Dart 入门
革命性web前端框架Flutter详细介绍和学习路径
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
Javanx
2019/09/04
4K0
革命性web前端框架Flutter详细介绍和学习路径
「 Dart Js Ts 」给前端工程师的一张Dart语言入场券
Flutter 使用 Dart 语言进行开发,小 null 在写 Flutter 的过程中发现 Dart 和 Javascript/Typescript 有些相似之处~
null仔
2020/05/22
1.6K0
同时搞定Android和iOS的Dart语言(1):Dart初探
用Flutter开发Android App和iOS App需要使用Dart语言,所以本系列文章会深入介绍Dart语言的相关知识,后续还会推出Flutter App开发的系列文章,敬请期待!
蒙娜丽宁
2020/08/04
1.7K0
同时搞定Android和iOS的Dart语言(1):Dart初探
Dart语言详解(二)——基本语法
文档归档: https://github.com/yang0range/flutterfile
Demo_Yang
2020/03/11
1.3K0
常用框架分析(7)-Flutter
Flutter是由Google开发的一个开源移动应用软件开发框架,用于创建高性能、高保真度的Android和iOS应用。它使用Dart语言编写,具有快速开发、跨平台、高性能和美观的特点。
学编程的小程
2023/10/11
3310
常用框架分析(7)-Flutter
Flutter概述、原理 & 跨平台历史及各方案比较 & Dart概述
1.Android&IOS双端开发线开发周期较长, 为了尽快推出产品,减少开销、缩短开发周期、提高开发效率, 从而产生跨平台方案;
凌川江雪
2020/06/02
2K0
Flutter概述、原理 & 跨平台历史及各方案比较 & Dart概述
Flutter 与 React Native - 详细深入对比分析(2024 年)
Flutter 和 React Native 是跨平台应用程序开发的两个领先工具。了解它们的差异以及各自的最佳用例。
一点一木
2024/10/15
1.9K0
Flutter 与 React Native - 详细深入对比分析(2024 年)
《深入浅出Dart》Flutter简介
Flutter是由Google开发和维护的开源框架,自2017年以来,已经迅速获得了开发者社区的广泛认可。其主要目的是开发出高性能、高保真的移动应用程序,用于iOS和Android两个主要平台。
linwu
2023/07/27
2350
你的Flutter应用该考虑迁移代码了:Dart 3将在2023年成为100%健全的空安全语言
编译 | 核子可乐、Tina 谷歌 Dart 语言即将告别 null 值,开发者们必须在 Dart 3 正式到来之前调整自己的代码。 根据计划,在 Dart 编程语言的第三个主要版本于 2023 年年中首度亮相时,将不允许在非必要位置使用 null 值。 在该上下文中,null 代表一个赋值,用于表示不存在值或引用的对象。Null 引用最早可以追溯到 1964 年左右,当时英国计算机科学家 Tony Hoare 在 ALGOL 语言家族中引入了这个概念。他认为这是个“价值十亿美元的错误”,这里指的是修
深度学习与Python
2023/03/29
1.2K0
你的Flutter应用该考虑迁移代码了:Dart 3将在2023年成为100%健全的空安全语言
【科普】Dart语言
Dart是一门新的编程语言,如同JAVA、PHP一样,是为了解决编写应用程序中的一些实际问题而被造轮子发明出来的,而这个造轮子的人就是 Google。可能大家都熟悉Google 的另一个轮子Golang,而对Dart 听闻甚少,其实Dart 的出生跟Go很相近,只是由于它的星途比起Go来说有点坎坷,一直没有被广大开发者重视,相关的技术文章和应用比较匮乏,也就一直蒙尘在泛泛语言之中。
Jean
2019/04/03
2.7K0
【科普】Dart语言
一种框架,一次代码,多平台使用
有没有一种语言或者一种框架,只需编写一次代码,就可以在多种平台运行,没错它来了,它就是Flutter。
希里安
2023/11/08
2050
一种框架,一次代码,多平台使用
推荐阅读
相关推荐
Dart语言详解(一)——详细介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档