1. Dart 变量
- dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推导
- dart中定义变量可以通过var关键字可以通过类型来申明变量
- var 后就不要写类型,写了类型不要var,两者都写
var a int = 5
; 报错
var str='this is var';
String str='this is var';
int str=123;
2. Dart 常量( final 和 const修饰符 )
- const值不变 一开始就得赋值;
- final 可以开始不赋值,只能赋一次
- final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
3. dart标识符命名规则(基本同js一致):
- 变量名称必须由数字、字母、下划线和美元符($)组成;
- 标识符不能是保留字和关键字,且开头不能是数字
- 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量;
- 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词
4. dart数据类型
4.1 常用数据类型
- Numbers(数值):
- int
- double
- Strings(字符串)
- String
- Booleans(布尔)
- bool
- List(数组)
- 在Dart中,数组是列表对象,所以大多数人只是称它们为列表
- Maps(字典)
- 通常来说,Map 是一个键值对相关的对象。 -
- 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次
//1、字符串定义的几种方式
var str1='this is str1';
String str1='this is str1';
//2、字符串的拼接
String str1='你好';
String str2='Dart';
print(str1 + str2);
//3.数值类型
int a=123;
double b=23.5;
var c=a+b;
//4.bool类型
bool flag1=true;
var flag=true;
//5. list类型
// 5.1 第一种定义List的方式
var l1=['aaa','bbbb','cccc'];
print(l1.length)
print(l1[1])
//5.2、第二种定义List的方式
var l2=new List();
l2.add('张三');
l2.add('李四')
//5.3、定义List指定类型
var l3=new List<String>();
l3.add('张三');
//6. Dart数据类型: Maps(字典)
//6.1 第一种定义 Maps的方式
var person={
"name":"张三",
"age":20,
"work":["程序员","送外卖"]
};
print(person);
print(person["name"]);
print(person["age"]);
print(person["work"]);
//6.2 第二种定义 Maps的方式
var p=new Map();
p["name"]="李四";
p["age"]=22;
p["work"]=["程序员","送外卖"];
print(p);
print(p["age"]);
4.2 项目中用不到的数据类型 (用不到)
-
Runes:
- Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字
-
Symbols
- Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:
runes示例:
var clapping = '\u{1f44f}';
print(clapping);
print(clapping.codeUnits);
print(clapping.runes.toList());
Runes input = new Runes(
'\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}');
print(new String.fromCharCodes(input));
}
runes示例
4.3 类型推断
- is 关键词来判断类型
void main() {
var str = 123;
if (str is String) {
print('是string类型');
} else if (str is int) {
print('int');
} else {
print('其他类型');
}
}