一,概述 -- Object Dart语言和Java一样,都是面向对象语言,所有的类也都有个公共的父类----->Object.该类位于Dart sdk核心库core目录下. 二,构造方法 //无参数构造方法. const Object(); 三,属性 //对象实例的哈希值,和Java中的一样 int hasCode //对象在运行时所属类型 Type runtimeType; 四,方法 //在通过该类的实例对象调用该类中不存在的属性或者方法时,会执行该方法,默认实现是抛出NoSuchMetho…
前言 本文的所有内容均是官方文档的简单翻译和理解,需要查看原文,请登录  https://www.dartlang.org/guides/language/language-tour  阅读, 让我们愉快地开始编程吧. 再加一句:dart的关键字汇总及详细介绍我就不翻译搬运了,大家直接去上边的网址查看官方文档即可. 第一部分:基础概念 以下9条是直接翻译的,官方说希望你在学习dart时记住这些重要的概念 1.dart将所有的变量都视为一个对象,所有的对象都看作一个类的实例,数字.函数.null也…
前言:本系列内容假设读者有一定的编程基础,如了解C语言.python等. 本节一起来学习dart的操作符,直接拷贝官网的操作符描述表如下: Description Operator unary postfix expr++    expr--    ()    []    .    ?. unary prefix -expr    !expr    ~expr    ++expr    --expr    multiplicative *    /    %  ~/ additive +    …
接着学习dart的函数和操作符. 1.函数Function dart是一种真正的面向对象的语言,通常一个函数也是Function类型的对象,这也就是说可以把函数赋值给一个变量,或者作为另一个函数的入参进行传递. 我们直接来看一个简单的函数例子吧: //定义一个函数,名字叫testFunc,,参数有两个int,返回值也是int int testFunc(int a, int b) { return a+b; } main() { var c=testFunc(2,4); //调用刚才定义的函数 p…
Dart 学习资料: 学习资料 网址 Dart 编程语言中文网 http://dart.goodev.org/ Dart 官方包仓库 https://pub.dartlang.org/ 你想了解的Dart https://www.jianshu.com/p/d41952e51120…
Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > (大于) < (小于) >= (大于等于) <= (小于等于) 3.逻辑运算符 ! (取反) && (且) || (或) 4.赋值运算符 // 基础赋值运算符 = (变量赋值) ??= (如果前面的变量为null时 就赋值,不为null就不赋值) // 复合赋值运算符 +=…
一,概述 编程中的代码执行,通常分为同步与异步两种. 同步:简单说,同步就是按照代码的编写顺序,从上到下依次执行,这也是最简单的我们最常接触的一种形式.但是同步代码的缺点也显而易见,如果其中某一行或几行代码非常耗时,那么就会阻塞,使得后面的代码不能被立刻执行. 异步:异步的出现正是为了解决这种问题,它可以使某部分耗时代码不在当前这条执行线路上立刻执行,那究竟怎么执行呢?最常见的一种方案是使用多线程,也就相当于开辟另一条执行线,然后让耗时代码在另一条执行线上运行,这样两条执行线并列,耗时代码自然也…
为什么学习Dart? Google及全球的其他开发者,使用 Dart 开发了一系列高质量. 关键的 iOS.Android 和 web 应用. Dart 非常适合移动和 web 应用的开发. 高效 Dart 语法清晰简洁,工具简单而强大. 输入检测可帮助您尽早识别细微错误. 快速 Dart 提供提前编译优化,以在移动设备和 web 上实现可预测的高性能和快速启动. 可移植 Dart 可以编译成 ARM 和 x86 代码,因此 Dart 移动应用程序可以在 iOS,Android 及 更高版本上实…
转自:https://www.blackglory.me/straightforward-dart/ Dart是Google公司发布的网络编程语言,其诞生的目的是为了让广大C类OOP程序员们克服JavaScript那”复杂”的语言特性. 众所周知,JavaScript虽然是OOP语言,但其OOP特性是基于原型链(Prototype)实现的,这与传统的OOP实现方式大相径庭,导致了部分程序员的学习困难. 然而Dart使用了更贴近传统的实现方式,内含class等常用关键字,降低了学习成本. 有了Da…
我们在写 mybatis多表关联查询的时候 ,要配置  resultmap ,实在太麻烦.而这个超级父类 可以省去我们查询多表时的map public class SuperPojo extends TreeMap<String, Object> implements Serializable { /** * */ private static final long serialVersionUID = 1L; public SuperPojo setProperty(String key ,…
前言:楼主平时基本没有使用过异常处理,所以对异常的认知可能不够准确,这里就不翻译异常的相关内容了,大家可以去官网自行阅读介绍,地址 https://dart.dev/guides/language/language-tour#exceptions . 我们前面提到,dart是面向对象的语言,程序中的每个对象都可以看作是某个类的实例.所有的类都派生自Object类. (一)使用类的成员 与C++等面向对象语言一样,dart的类成员包括方法(接口)与数据,使用点号操作符(.)可以访问类的方法和数据.…
一,概述 继承(关键字 extends) 混入  mixins (关键字 with) 接口实现(关键字 implements) 这三种关系可以同时存在,但是有前后顺序: extends -> mixins -> implements extens在前,mixins在中间,implements最后 二,继承(extends) Flutter中的继承和Java中的继承是一样的: Flutter中的继承是单继承 (1) 子类使用extends关键词来继承父类 (2) 子类会继承父类里面可见的属性和方…
一,概述  Dart是一种可选的类型语言.Dart中的集合默认是异构的.换句话说,单个Dart集合可以托管各种类型的值.但是,可以使Dart集合保持同质值.泛型的概念可以用来实现同样的目的. 泛型的使用强制限制集合可以包含的值的数据类型.这种集合称为类型安全集合.类型安全是一种编程功能,可确保内存块只能包含特定数据类型的数据. 所有Dart集合都通过泛型支持类型安全实现.包含数据类型的一对尖括号用于声明类型安全的集合.声明类型安全集合的语法如下所示. 通俗理解:泛型就是解决 类 接口 方法的复用…
一,概述 类(Class)是面向对象程序设计,实现信息封装的基础.类是一种用户定义的类型.每个类包含数据说明和一组操作数据或传递消息的函数.类的实例称为对象. Dart的类与其它语言都有很大的区别,比如在dart的类中可以有无数个构造函数,可以重写类中的操作符,有默认的构造函数,由于dart没有接口,所以dart的类也是接口,因此你可以将类作为接口来重新实现. Dart是一门使用类和单继承的面向对象语言所有的对象都是类的实例,并且所有的类都是Object的子类. 二,类定义 类的定义用class…
1. 指定返回值得函数 /** * 无返回值的函数 * params: 可以是任意类型(var和Object类型也可以任意类型). 当然这里的参数类型你可以随意指定我这里已dynamic为例 * 参数类型:你也可以指定var.Object等,再比如说你可以指定num, int,double, String.... * 如果我们对参数没有限制的话可以使用这个 */ void printDynamicParams(dynamic params){ print(params); } 主函数中我们调用p…
语言特性 Dart所有的东西都是对象, 即使是数字numbers.函数function.null也都是对象,所有的对象都继承自Object类. Dart动态类型语言, 尽量给变量定义一个类型,会更安全,没有显示定义类型的变量在 debug 模式下会类型会是 dynamic(动态的). Dart 在 running 之前解析你的所有代码,指定数据类型和编译时的常量,可以提高运行速度. Dart中的类和接口是统一的,类即接口,你可以继承一个类,也可以实现一个类(接口),自然也包含了良好的面向对象和并…
前言 博主非科班出身,平时多用C语言,最近想了解学习一门第二语言,看上了可用于移动开发的目前还小众一点dart,准备用一段比较长的时间来慢慢学习.理解. 关于dart语言不再详细介绍了,大家可以访问  官网  https://www.dartlang.org/  或者 dart中文网 http://dart.goodev.org/ 安装与配置 1.下载安装dart的sdk,官方推荐的windows install下载地址 http://www.gekorm.com/dart-windows/ …
dart定义了下表所示的运算符.你可以重写许多这些运算符. 描述 运算符 一元后缀 expr++ expr-- () [] . ?. 一元前缀 -expr !expr ~expr ++expr --expr 乘法类型 * / % ~/ 加法类型 + - 移动位运算 << >> 与位运算 & 异或位运算 ^ 或位运算 | 关系和类型测试 >= <= > < as is is! 等式 == != 逻辑与 && 逻辑或 || 条件 expr…
经过前面的基础知识了解学习,我们今天可以进入语句模块啦. dart主要有以下流程控制语句: if-else for循环 while和do-while循环 break和continue switch-case assert 当然,你还可以使用 try-catch或throw (一)if-else dart的if(或者else if)的条件表达式必须为bool表达式,不能使用其他类型.dart的if-else用法与C语言类似,不再细述. int a = 6; if(a<0) { print("…
概述 异步任务在Dart中随处可见,例如许多库的方法调用都会返回Future对象来实现异步处理,我们也可以注册Handler来响应一些事件,如:鼠标点击事件,I/O流结束和定时器到期. 这篇文章主要介绍了Dart中与异步任务相关的消息循环机制,阅读完这篇文章后相信你可写出更赞的异步执行代码.你也能学习到如何调度Future任务并且预测他们的执行顺序. 在阅读这篇文章之前,你最好先要了解一下基本的Future用法. 基本概念 如果你写过一些关于UI的代码,你就应该熟悉消息循环和消息队列.有了他们才…
一,概述 通常来讲,Map是一个键值对相关的对象,键和值可以是任何类型的对象.每个键只出现一次,而一个值则可以出现多次.映射是动态集合. 换句话说,Maps可以在运行时增长和缩小. dart:core库中的Map类提供了相同的支持. 二,声明 不指定泛型(普通方式,不指定任何类型,这时testMap中K-V的类型均是dynamic ) //直接赋值 var map1 = {'aa':'aaa','bb':22,'cc':true}; Map map2 = {'a':'a1','b':'b1'};…
一,匿名方法定义 (参数1,参数2,....){ 方法体... return 返回值 } 二,匿名方法特性 可赋值给变量,通过变量进行调用 可在其他方法中直接调用或传递给其他方法 void main(List<String> args) { //无参匿名函数 var func = () {  print("Hello");  }; func(); //有参匿名函数 var func1 = (str) {   print("Hello-------$str"…
一,概述 dart定义了下表所示的运算符.你可以重写许多这些运算符. 描述 运算符 一元后缀 expr++ expr-- () [] . ?. 一元前缀 -expr !expr ~expr ++expr --expr 乘法类型 * / % ~/ 加法类型 + - 移动位运算 << >> 与位运算 & 异或位运算 ^ 或位运算 | 关系和类型测试 >= <= > < as is is! 等式 == != 逻辑与 && 逻辑或 || 条件…
一,概述 元数据概述  元数据(Metadata),又称中介数据.中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置.历史数据.资源查找.文件记录等功能. 元数据定义  元数据(Metadata)是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data).元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源:评价资源:…
1. 静态成员.方法 1.1 static 声明 1.2 静态.非静态方法可访问静态成员.调用方法:静态方法不可访问静态成员.调用方法: 1.3 静态成员.方法,属于类的 ,不用实例化对象就可使用,不可使用super.this class Person { static String name = '张三'; int age = 20; static void show() { print(name); } void printInfo() { /*非静态方法可以访问静态成员以及非静态成员*/…
本篇继续介绍dart变量类型,可参考前文:第二篇:dart变量介绍 (一) (一)final和const类型 如果你不打算修改一个变量的值,那么就把它定义为final或const类型.其中:final变量的值只能被设置一次,const变量是编译时常量(const是隐式final).final变量在第一次使用时初始化.(注:类实例变量可以是final类型,但不可以是const类型) final类型的用法例子如下,在final关键字后,可选择是否显式声明变量类型: final name ='Bob'…
一.数据类型 1. 字符串 和 数字 互转 // String 转为 int '); assert(one == ); // String 转为 double var onePointOne = double.parse('1.1'); assert(onePointOne == 1.1); // int 转为 String String oneAsString = .toString(); assert(oneAsString == '); // double 转为 String String…
一,Runes 在Dart中,Runes代表字符串的UTF-32字符集, 另一种Strings Unicode为每一个字符.标点符号.表情符号等都定义了 一个唯一的数值 由于Dart字符串是UTF-16的字符序列,所以在字符串中表达32的字符序列就需要新的语法了 通常使用\uXXXX的方式来表示, 这里的XXXX是4个16进制的数, 如,心形符号(♥)是\u2665 对于非4个数值的情况,把编码值放到大括号中即可, 如,笑脸emoji (…
一,概述 按顺序访问的值或元素的集合, List集合也是继承于Iterable List和Set也是Iterable,dart:collection库中同样有很多 部分Iterable集合可以被修改 向List或Set添加元素将改变对象所有包含的元素. 向Map添加新的Key会改变所有Map.keys的元素. 在集合改变后,创建的迭代器将提供新的所有元素,并且可能会保持目前元素的顺序, 也可能不会 二,创建方式 创建空的可迭代对象 var ite = Iterable.empty(); prin…
一,什么是运算符重载(operator overloading) 在软件开发过程中,运算符重载(英语:operator overloading)是多态的一种.运算符重载通常只是一种语法糖,这种语法对语言的功能没有影响,但是更方便程序员使用.让程序更加简洁,有更高的可读性. 二,语法糖的现实意义 在日常工作过程中,我们读代码读机会往往超过写代码,软件工程是门协作的艺术 我们写的代码主要是给机器和人看的,给机器看的可以通过代码测试和实际运行来进行检验,给人的目前还没太好的评价方式.不过在设计一门语言…