引言
在学习Flutter之前,还是得先把基础打好,先来学习一下Dart的基础知识。
第一个dart
import 'package:dart/dart.dart' as dart;main(List<String> arguments) {print('Hello world: ${dart.calculate()}!');
}
变量与常量
1.变量
Dart是一个强大的脚本类语言,可以不预先定义变量类型,自动会类型推导(有点kotlin的味道),Dart中定义变量可以通过var关键字可以通过类型来申明变量,如:
var str='this is var';String str='this is var';int str=123;// 注意: var 后就不要写类型 ,
//写了类型 不要var 两者都写 var a int = 5; 报错
2.常量(final 和 const修饰符)
const值不变,一开始就得赋值,
final可以开始不赋值,最后只能赋一次 ;
而final不仅有const的编译时常量的特性,最重要的它是运行时常量,
并且final是惰性初始化,即在运行时第一次使用前才初始化.
永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。
final name = 'Bob'; // Without a type annotationfinal String nickname = 'Bobby';const bar = 1000000; // Unit of pressure (dynes/cm2)const double atm = 1.01325 * bar; // Standard atmosphere
命名规则
- 变量名称必须由数字、字母、下划线和美元符($)组成。
- 注意:标识符开头不能是数字
- 标识符不能是保留字和关键字。
- 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。
- 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词
数据类型
- Numbers(数值):
int
double
- Strings(字符串):
String
- Booleans(布尔) :
bool
- List(数组):
在Dart中,数组是列表对象,所以大多数人只是称它们为列表
- Maps(字典):
Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
数值类型数据
数值类型的数据比较好理解,就是int和double类型的数据等。
//1、int 必须是整型int a=123;a=45;print(a);//2、double 既可以是整型 也可是浮点型double b=23.5;b=24;print(b);//3、运算符// + - * / %var c=a+b;print(c);
字符串类型数据
var str1='this is str1';
var str2="this is str2";
String str3="""this is str1this is str2this is str3""";
布尔类型数据
bool类型的数据无非就是true或者false
//1、bool// bool flag1=true;// print(flag1);// bool flag2=false;// print(flag2);//2、条件判断语句var flag=true;if(flag){print('真');}else{print('假');}// var a=123;// var b='123';// if(a==b){// print('a=b');// }else{// print('a!=b');// }var a=123;var b=123;if(a==b){print('a=b');}else{print('a!=b');}
List(数组)类型数据
数组类型的数据就是将一众合数据组成一个数组,选择这个数组中某一个数据可以由数组的index值来选择。
var l1=['aaa','bbbb','cccc'];print(l1);print(l1.length);print(l1[1]);//var l2=new List();l2.add('张三');l2.add('李四');l2.add('王五');print(l2);print(l2[2]);//如果我们需要让数组类型的数据中都由一种数据组成我们可以这样设置数组var l3=new List<String>();l3.add('张三');// l3.add(123);//报错,因为数据类型不匹配print(l3);
Map类型数据
Map数据类型我们其实可以看成是一种对象类型数据,这个在我们开发实践中很常见,
所有的json数据都基本上会采用Map,我们可以把Map理解成一种Key/Value类的数据形式,
var person={"name":"张三","age":20,"work":["程序员","送外卖"]};print(person);print(person["name"]);print(person["age"]);print(person["work"]);//另一种方式
var p=new Map();p["name"]="李四";p["age"]=22;p["work"]=["程序员","送外卖"];print(p);print(p["age"]);
基本运算符
描述 | 操作符 |
---|---|
一元后置操作符 | expr++ expr-- () [] . ?. |
一元前置操作符 | expr !expr ~expr ++expr --expr |
乘除 | * / % ~/ |
加减 | + - |
位移 | << >> |
按位与 | & |
按位或 | | |
按位异或 | ^ |
逻辑与 | && |
逻辑或 | || |
关系和类型判断 | >= > <= < as is is! |
等 | == != |
如果为空 | ?? |
条件表达式 | expr1 ? expr2 : expr3 |
赋值 | = *= /= ~/= %= += -= <<= >>= &= ^= = ??= |