教大家快速学习一门新语言:
- 第一是零基础:那我们只能靠自己脚踏实地的多写多想慢慢熟悉你所选择的语言 ,没有别的办法。(但是dart确实目前为止最好学的没有之一的语言)
- 第二是有基础:小伙伴们如何快速学习一门新语言,其实很简单,我们可以根据我们当前所掌握或者熟悉的语言对比,比如:js、java、swift等等任意一门都可以,那么剩下来我们只需要掌握与之不同的语法,然后在靠自己多写多想慢慢熟悉。
一、开篇(请记住并了解这些万能的规则)
- 一切变量皆是对象,每个对象都是类的实例。int、double、函数、 null 等都是对象,所有对象都继承自 Object 类
- Dart可基于AOT(Ahead Of Time)编译,即编译成平台的本地代码,运行性能高。
- Dart也可基于JIT(Just In Time)编译,编译快速,可热加载,使开发周期加倍提升(Flutter亚秒级有状态热重载)
- Dart可以更轻松地创建以60fps运行的流畅动画和转场。Dart在没有锁的情况下进行对象分配和垃圾回收
- Dart语法结合Java与JavaScript语法特点,几乎没有令人不适的怪异语法,使Java程序员倍感亲切,快速上手
- Dart 没有关于 public、protected、private 的关键字。通过为变量标识符添加下划线前缀,表明该标识符对其库是私有的
- Dart支持顶级函数、静态函数、实例函数,也允许在函数中嵌套函数,即局部函数。类似的,dart 也支持顶级变量、静态变量和实例变量
- Dart 是强类型语言,但由于具备类型推导功能所以类型声明是可选的
二、Dart快速入门基础目录:
本文分三节讲解:
| 章节 | 介绍 | | ---- | ---- | | | 上: | | | 中: | | | 下: |
三、开发工具选择
编译器主要采用Android Studio编译器
同时按照国际惯例使用Dart完成一个:"Hello,World!" 并输入运行结果:
import 'dart:core';
void main() {
print('Hello,World');
}
四、变量
Dart中定义变量有两种方式: 一、静态类型语言常用的方式,显式指定变量类型。 二、动态语言的常用方式,不指定类型,由vm自动推断。
一切变量皆是对象,每个对象都是类的实例。int、double、函数、 null 等都是对象,所有对象都继承自 Object 类。下面我们看看如何声明变量:
变量是一个引用,未初始化的变量值是Null如下。
import 'dart:core';
void main() {
String name;
print('$name'); //输出为null
}
上面我们提到了显示指定变量类型如下:
import 'dart:core';
void main() {
String name ="黄药师";
int age =10;
print('$name''----$age'); //输出:黄药师----10
}
动态语言的常用方式,不指定类型,由vm自动推断。
import 'dart:core';
void main() {
String name ="黄药师";
name ='周伯通';
print('$name'); //输出:周伯通
}
Dart 语言是强类型语言,无法将一个已声明具体变量类型的变量赋值为另一个无继承关系的变量
import 'dart:core';
void main() {
String name ="黄药师";
name =10;
print('$name');
}
这种赋值的时候就会报错:
import 'dart:core';
void main() {
int age =10;
age =10.0; //这种在赋值的时候就已经报错
print('$age');
}
但是这个地方有个需要注意的地方就是int 和double 类都是num的子类如下面写法是合法。
import 'dart:core';
void main() {
num age =10;
age =10.0; //这种在赋值合法
print('$age');
}
1、var(官方风格指南建议使用var)
var:在声明变量在赋值的那一刻,就已经决定了它是什么类型。
上面这句话是什么意思尼?其实很简单:
import 'dart:core';
void main() {
//age 已经确定为num类型并为其赋值18岁,如果你赋值字符串,那么就会报错
var age =18;
age ='18';
print('$age');
}
import 'dart:core';
void main() {
//age 已经确定为num类型并但是没有为其赋值,如果你赋值字符串那么是正确
var age;
age =18;
age ='18';
print('$age');
}
2、Object
一切变量皆是对象,每个对象都是类的实例。int、double、函数、 null 等都是对象,所有对象都继承自 Object 类
import 'dart:core';
void main() {
Object age ='18';
age =18;
print('$age');
}