前言:Dart是谷歌开发的计算机编程语言,后来被Ecma(ECMA408)认定为标准。它被用于web、服务器、移动应用〔2〕和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。Dart是面向对象的、类定义的、单继承的语言。它的语法类似C语言,可以转译为JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstractclasses)、具体化泛型(reifiedgenerics)、可选类型(optionaltyping)和soundtypesystem定义:Dart是由谷歌开发的通用的编程语言,它常用于构建web、服务器、桌面和移动应用程序。Dart是一种简洁、清晰、基于类的面向对象的语言,它是基于JavaScript的大三女生结构要比JavaScript要多。Dart是一种面向对象的、类定义的、垃圾回收语言。它支持接口、mixin、类对象,具有化泛型、静态类型等。用法例子: helloworld例子 在终端打印字符串‘HelloWorld!’main(){print(HelloWorld!);} 计算斐波那契数列intfib(intn)(n2)?(fib(n1)fib(n2)):1;voidmain(){print(fib(20){fib(20)});} 一个简单的类 计算两点距离引入math库以访问sqrt函数importdart:mathasmath;创建类Point。classPoint{Final变量一经定义不可改变创建分别代表x、y轴的距离变量finalnumx,y;在构造方法中以语法糖快捷地设置实例变量Point(this。x,this。y);一个带有初始化列表的命名构造方法Point。origin():x0,y0;计算两点距离的方法numdistanceTo(Pointother){vardxxother。x;vardyyother。y;returnmath。sqrt(dxdxdydy);}重载运算符Pointoperator(Pointother)newPoint(xother。x,yother。y);} 所有的Dart程序都以main()函数作为入口voidmain(){实例化两个点varp1newPoint(10,10);varp2newPoint。origin();计算两点距离vardistancep1。distanceTo(p2);print(distance);} 异步并发示例 使用了Isolateimportdart:async;importdart:isolate; main()async{varreceivePortnewReceivePort();awaitIsolate。spawn(echo,receivePort。sendPort);echo发送的第一个message,是它的SendPortvarsendPortawaitreceivePort。first;varmsgawaitsendReceive(sendPort,foo);print(receivedmsg);msgawaitsendReceive(sendPort,bar);print(receivedmsg);}新isolate的入口函数echo(SendPortsendPort)async{实例化一个ReceivePort以接收消息varportnewReceivePort();把它的sendPort发送给宿主isolate,以便宿主可以给它发送消息sendPort。send(port。sendPort);监听消息awaitfor(varmsginport){vardatamsg〔0〕;SendPortreplyTomsg〔1〕;replyTo。send(data);if(databar)port。close();}}对某个port发送消息,并接收结果FuturesendReceive(SendPortport,msg){ReceivePortresponsenewReceivePort();port。send(〔msg,response。sendPort〕);returnresponse。first;DART概述: 1。面向对象 对于面向对象这个概念,相信了解Java的同学对这个概念一定不会陌生。 例如:我们有个PersonObject他有很多特征和行为。 这些都是这个PersonObject的属性。 也就是因为有了这些特征,行为等等才决定了这个人是谁。 那么回到Dart当中,所有的都是对象,那么在就可以可以跟进对象的属性的特征,方法等等来进行编程。 之所以我们在这里又特别强调了一下面向对象的概念,是因为这个概念在Dart语言当中,至关重要! 2。最重要的几个概念在Dart语言中,所有的东西都是对象,无论是变量、数字、函数、null等都是对象,所有的对象都是Object类的子类。Dart语言是强类型编程,一旦确定了类型,那么就不可以改变变量类型,在编译时会进行语法减产,但是Dart允许弱类型语言式的编程。Dart代码在运行前解析,指定数据类型和编译时常量,可以提高运行速度。Dart语言的统一入口是main函数。Dart的私有特性是在变量或者函数名前面加上下划线。Dart支持asyncawait异步处理。 3。Dart的部分特性Dart是AOT(AheadOfTime)编译的,可编译成快速,可预测的本地代码。Dart可以JIT(JustInTime)编译,开发周期快,为Flutter热重载提供基础。Dart可以轻松创建60fps运行的流畅动画和转场。Dart的声明式编程布局,易于阅读和可视化,不需要单独的声明式布局语言,如:XML,JSX。Dart非常易于学习,具有静态和动态语言,编程人员都熟悉的特性。 4。Dart的内置库 包名 描述 dart:asynv 异步编程,提供Future,Stream类 dart:collection 集合 dart:convert 不同类型的字符编码解码 dart:core Dart语言核心功能,内置类型 dart:html 网页开发用到的库 dart:io 文件读写,IO相关 dart:math 数字常量以及函数,随机算法等 dart:svg 事件和动画矢量图支持总结: 综上述所说要想学Flutter,先学Dart!关于Flutter下篇我会讲到。为什么离不开dart! 有关更多面经、核心技术笔记;自己也是从事Android开发5年有余了;整理了一些Android开发技术核心笔记和面经题纲,如有需要的同学请私信我回复核心笔记或面试领取!