Flutter基础(三)Dart快速入门

本文是Flutter基础系列的第三篇,重点介绍了Dart语言的基础知识,包括开发环境搭建、语言概述、重要概念、关键字、基本数据类型、函数、流程控制等,帮助读者快速入门Dart,为学习Flutter打下基础。文章还强调了Dart的执行速度、易移植性以及在Flutter中的重要角色。
摘要由CSDN通过智能技术生成

本文首发于公众号「刘望舒」

关联系列
ReactNative入门系列
React Native组件
Flutter基础系列

前言

Dart是Flutter SDK指定的语言,因此要学习Flutter,Dart是必须掌握的。关于Dart可以写一本书了,这里用一篇文章来介绍下Dart的精髓,带你快速入门。和Java语言类似的部分,这篇文章就尽量不再讲了。

1. Dart开发环境搭建

学习Dart语法最好需要用一个编辑器来实践,这里推荐使用IntelliJ IDEA。先下载Dart SDK,地址为:http://www.gekorm.com/dart-windows/
打开IntelliJ IDEA,菜单中点击File–>Settings–>plugins,在plugins的搜索框中搜索Dart并安装,然后重启IntelliJ IDEA。
点击File–>New Project–>Dart,按照下图配置Dart SDK。
1.png
注意要选择第三个选项Constole Application,否则会默认创建一个Web项目。点击Next然后配置项目的名称就可以创建项目了。
在项目中的bin/main.dart中加入如下测试代码:

void main() {
   
  print("Hello World");
}

点击菜单的Run–>Run’main.dart’或者点击工具条的运行图标,就能在控制台看到输出的结果:

2. Dart概述

Dart是谷歌开发的计算机编程语言,亮相于2011年10月,最新的版本是Dart2。Dart诞生的原因是谷歌的工程师出于对JavaScript的不满,诞生的初期也赢得了部分前端开发者的青睐。但是这时JavaScript借着NodeJS火了起来,在前端、后端、移动端无孔不入,Dart就渐渐被人遗忘了,可见Dart本身是具有很强的实力的,只是不大走运。谷歌并没有放弃Dart,不遗余力的推广Dart:谷歌的Angular提供了Dart版本,指定Dart为新系统Fuchsia的官方开发语言,Dart为移动UI框架Flutter的开发语言,因此Dart又重新回到了人们的视野中。
Dart通常情况下运行在DartVM上,但是在特定情况下它也可以编译成本地代码运行在硬件上,比如Flutter会将代码编译成指定平台的本地代码来提高性能。

3. Dart特性和重要概念

Dart的特性主要有以下几点:

  1. 执行速度快,Dart是AOT(Ahead Of Time)编译的,可以编译成快速的、可预测的本地代码,这使得Flutter几乎都可以使用Dart来编写。也可以采用JIT(Just In Time)编译。
  2. 易于移植,Dart可编译成ARM和X86代码,这样Dart可以在Android、iOS和其他地方运行。
  3. 容易上手,Dart充分吸收了高级语言特性,如果你已经熟悉C++、C、Java,可以在短短几天内用Dart来开发。
  4. 易于阅读,Dart使Flutter不需要单独的声明式布局语言(XML或JSX),或者单独的可视化界面构建器,这是因为Dart的声明式编程布局易于阅读。
  5. 避免抢占式调度,Dart可以在没有锁的情况下进行对象分配和垃圾回收,和JavaScript一样,Dart避免了抢占式调度和共享内存,因此不需要锁。

Dart的重要概念有以下几点:

  1. 在Dart中,一切都是对象,每个对象都是一个类的实例,所有对象都继承自Object。
  2. Dart在运行前解析所有的代码,指定数据类型和编译时常量,可以使代码运行的更快。
  3. 与Java不同,Dart不具备关键字public、protected、private。如果一个标识符以下划线_开始,那么它和它的库都是私有的。
  4. Dart支持顶级的函数如main(),也支持类或对象的静态和实例方法,还可以在函数内部创建函数。
  5. Dart支持顶级的变量,也支持类或对象的静态变量和实例变量,实例变量有时称为字段或属性。
  6. Dart支持泛型类型,如List<int>(整数列表)或List<dynamic>(任何类型的对象列表)。
  7. Dart工具可以报告两种问题:警告和错误。警告只是说明代码可能无法正常工作,但不会阻止程序执行。错误可以是编译时或运行时的。编译时错误会阻止代码执行; 运行时错误会导致代码执行时报出异常。

4. Dart关键字

关键字
abstract dynamic implements show
as else import static
assert enum in super
async export interface switch
await extends is sync
break external library this
case factory factory factory
catch false new true
class class null try
const finally on typedef
continue for operator var
covariant Function part part
default get rethrow while
deferred hide return with
do if set set

5. 变量

变量声明使用var关键字,未初始化的变量的初始值为null,即便是数字类型的变量也是null。

var name = 'liuwangshu';

name变量的类型被推断为String,也可以显示声明:

String name = 'liuwangshu' ; 

如果对象不限于单一类型,可以指定Object或dynamic类型。

Object name = 'liuwangshu' ; 

如果定义的变量不会变化,可以使用final或const来代替var,final变量只能设置一次。

final name = 'liuwangshu'
//name = 'zhangwuji' ; //会报错

const变量为编译时常量,如果const变量在类级别,可以使用static const。

const pi = 3.1415926;       
const area = pi * 60 * 60; 

const不仅仅用来定义常量,也可以使用const来创建常量的值。

var foo = const []; final bar = const []; const baz = [];//相当于`const []` 

6. 基本数据类型

Dart的基本数据类型包括Number、String、Boolean、List、Set、Map、 S

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值