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 · 304 阅读 · 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 · 229 阅读 · 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 · 298 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(十一)库与导入(import)
Library的导入import关键字导入Libraryimport 'dart:html';Library的URI通过URI导入一个Library根据library的种类不同,URI前缀scheme不同:Dart标准库… dart:xxx三方库(通过包管理器提供的库,如pub工具)… package:xxxFlutter的Library中也有三方库import '...原创 2020-03-05 02:35:18 · 300 阅读 · 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 · 258 阅读 · 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 · 346 阅读 · 1 评论 -
面向Kotlin与Java开发者的Dart快速入门(八)继承与Mixins
隐式接口Java中我们总是把接口和抽象类放到一起理解:接口是极致抽象的抽象类。Dart中接口和类是统一的,每个类同时也是一个接口:没有interface关键字,声明class的同时隐式地创建同名接口类中的非私有的成员可以通过接口对外暴露,但需要被实现与Java一样,使用implements 关键字实现接口抽象类同样具有隐式接口// Person声明的同时,创建同名接口,内有方法...原创 2020-03-05 02:34:37 · 568 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(七)类的成员方法
成员方法与Java的成员方法无论在定义或是调用上没有区别。惟一的区别是Dart的成员方法无法重载,但是有可选参数的加持,也没有大问题getter/setterDart的getter/setter与Kotlin的类似,但是没有backing filed的概念,所有没有filed变量用来存储数据,需要自己声明一个私有变量来充当所谓的backing fieldclass Rect { ...原创 2020-03-05 02:34:20 · 206 阅读 · 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 · 323 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(五)流程控制、异常处理
Dart的流程控制(Control flow)、异常控制(Exception)等处理原创 2020-03-05 02:33:45 · 219 阅读 · 0 评论 -
面向Kotlin与Java开发者的Dart快速入门(四)操作符、运算符
Dart的操作符 运算符等介绍原创 2020-03-05 02:33:35 · 305 阅读 · 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 · 264 阅读 · 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 · 299 阅读 · 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 · 520 阅读 · 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 · 447 阅读 · 0 评论