![](https://img-blog.csdnimg.cn/20200304095832497.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Dart入门教程
适合Kotlin和Java开发者学习的Dart入门教程
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
-
面向Kotlin与Java开发者的Dart快速入门(十四)Typedef、Metadata
Typedef 可以理解成Kotlin中typealias的函数限定版,只能用来对函数定义别名。 typedef GestureTapDownCallback = void Function(TapDownDetails details); 定义还可以携带泛型 typedef Compare<T> = int Function(T a, T b); int sort(int a,...原创 2020-03-05 02:35:44 · 278 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(十三)注释
Dart的注释用法与Java大体相同。 单行注释 final hoge = 0; // 到行末都是注释内容 多行注释 与Java一样/**/ void main() { /* * This is a lot of work. Consider raising chickens. Llama larry = Llama(); larry.feed(); larr...原创 2020-03-05 02:35:35 · 210 阅读 · 1 评论 -
面向Kotlin与Java开发者的Dart快速入门(十二)异步与并发
异步编程 Dart可以像C#或Javascript那样可以通过 async/await 实现异步逻辑 Future与async/await 与Js的async/awiat是Promise的语法糖一样,Dart的async/awiat只不过是Future的语法糖,可以帮助我们的用同步的代码处理Future提高可读性。脱离async/await,Future本身的API仍然可以完成异步逻辑。 Fu...原创 2020-03-05 02:35:27 · 263 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(十一)库与导入(import)
Library的导入 import关键字导入Library import 'dart:html'; Library的URI 通过URI导入一个Library 根据library的种类不同,URI前缀scheme不同: Dart标准库… dart:xxx 三方库(通过包管理器提供的库,如pub工具)… package:xxx Flutter的Library中也有三方库 import '...原创 2020-03-05 02:35:18 · 280 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(十)泛型
整体上与Java的泛型相似,有少许区别 运行时持有类型信息 Java的泛型的类型信息在运行时会丢弃,Dart则一直保持到运行时,可以动态check泛型信息 final strList = <String>[ "hoge", "fuga", "moge" ]; assert(strList is List<String>); 泛型上下界 跟Java一样, <...原创 2020-03-05 02:35:06 · 235 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(九)静态变量、枚举
静态变量、方法 静态变量、方法的定义与使用与Java中完全相同,同样使用static关键字,同样不用通过实例调用。 如果是一个广泛使用的静态方法,建议使用top-level方法替代静态方法,我们在Kotlin的编码规范中往往也是这样要求的。 一个疑问 Dart2官方有以下一段文字 You can use static methods as compile-time constants. Fo...原创 2020-03-05 02:34:55 · 314 阅读 · 1 评论 -
面向Kotlin与Java开发者的Dart快速入门(八)继承与Mixins
隐式接口 Java中我们总是把接口和抽象类放到一起理解:接口是极致抽象的抽象类。 Dart中接口和类是统一的,每个类同时也是一个接口: 没有interface关键字,声明class的同时隐式地创建同名接口 类中的非私有的成员可以通过接口对外暴露,但需要被实现 与Java一样,使用implements 关键字实现接口 抽象类同样具有隐式接口 // Person声明的同时,创建同名接口,内有方法...原创 2020-03-05 02:34:37 · 530 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(七)类的成员方法
成员方法 与Java的成员方法无论在定义或是调用上没有区别。 惟一的区别是Dart的成员方法无法重载,但是有可选参数的加持,也没有大问题 getter/setter Dart的getter/setter与Kotlin的类似,但是没有backing filed的概念,所有没有filed变量用来存储数据,需要自己声明一个私有变量来充当所谓的backing field class Rect { ...原创 2020-03-05 02:34:20 · 186 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(六)类与实例化
类(Class) 与Java相同,Dart中所有的类都是Object的子类。 与Java和Kotlin一样,this关键字指向当前实例,Dart的代码风格建议省略this,仅在名称冲突等必要的时候使用。 Dart1的对象实例化与Java一样使用new关键字,Dart2开始可以向Kotlin一样不使用new创建实例 实例通过instance.runtimeType可以获取一个类型对象,相当于Jav...原创 2020-03-05 02:33:56 · 302 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(五)流程控制、异常处理
Dart的流程控制(Control flow)、异常控制(Exception)等处理原创 2020-03-05 02:33:45 · 198 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(四)操作符、运算符
Dart的操作符 运算符等介绍原创 2020-03-05 02:33:35 · 286 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(三)函数
函数签名 Dart采用与Java一样的函数签名写法 String greet(String name) { return "Hello, $name"; } Dart可以通过类型推导确定返回值类型,随意允许在签名中省略返回值类型: greet(String name) { return "Hello, $name"; } 但是根据Effective Dart为避免可读性下...原创 2020-03-05 02:33:25 · 242 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(二) 内置类型
数值 数值类型包括整形int, BigInt,以及浮点型double,int是64bit的,超出这个范围使用Bigint。数值类型的字面值在编译期可以确定,所以使用const声明数值常量 const A = 3; const B = 9; const C = A * B; 字符串 String var str = "可以使用双引号字符串"; String var str = '也可以向JS...原创 2020-03-05 02:33:12 · 275 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(一)变量
前言 本系列文章通过与Kotlin或Java的对比来介绍Dart的基本语法,主要基于以下两点考虑: Dart有很多与Kotlin或Java相近的语法,与Java尤其相似 很多学习Flutter的同学都是Android开发者,都有Kotlin或Java的使用经验 除Kotlin和Java以外,Dart的语法中也能看到Javascript、python、C#等语言的影子,写到之处会简单提及但是不...原创 2020-03-05 02:32:58 · 492 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart入门教程
前言 本系列文章以Dart 2.7 为基础,通过与Kotlin或Java的对比来介绍Dart的语法特点和使用方法,主要基于以下两点考虑: Dart有很多与Kotlin或Java相近的语法,与Java尤其相似 很多正在学习Flutter的同学都是Android开发者,都有Kotlin或Java的使用经验 除Kotlin和Java以外,Dart的语法中也能看到Javascript、python、...原创 2020-03-05 02:32:28 · 421 阅读 · 0 评论