1 声明变量
变量名 + “_”, 则表示 只能在当前文件内使用
void main(List<String> args) {
// 1 明确声明
String name = "why";
// 2 类型推导
// 2.1 final声明常量, 运行期有确定值即可
final height = aaa();
// 2.2 const声明常量, 编绎期就要有确定值
const address = "广州市";
// 2.3 var声明变量(常用), 赋值会导致确定类型, 不能再改变其类型
var age = 20;
// age = "abc"
// 2.4 dynamic声明变量, 可改变类型(运行时存在安全隐患)
dynamic slogon = "123";
print(slogon.runtimeType); // 运行时类型
slogon = 1.23;
// 2.5 Object声明变量, 可改变类型(xxx as String), 但调用方法时会报错
Object xxx = "123";
// print(xxx.length); // dart解释器不会推导出Object类型所包含的方法
}
int aaa() {
return 3;
}
2 字符串格式化
void main(List<String> args) {
var name = "why";
var age = 19;
var height = 1.88;
var message = "my name is ${name}, age is ${age}, height is ${height}";
var message2 = "my name is $name, age is $age, height type is ${height.runtimeType}";
print(message);
print(message2);
}
3 集合类型
(1) List
var numbers = [1, 2, 3, 4];
// 添加/删除/元素
numbers.add(5);
// 删除值为1的元素(只删除从左往右数的第一个)
numbers.remove(1);
// 是否包含某元素
print(numbers.contains(2));
// List根据index删除元素
numbers.removeAt(3);
print('$numbers');
// 插入
numbers.insert(0, 1); // 在索引0处插入1
// 插入一个列表
numbers.insert(1, [8,9]) // 在索引1处插入8和9,原来索引>=1的元素统统后移
// 反转
var numbers2 = numbers.reversed.toList();
(2) Set
// 可明确指明类型, Set里的元素不能重复
Set<int> numbersSet = {1, 2, 3, 4};
numbersSet.add(5);
numbersSet.remove(1);
print(numbersSet.contains(2));
(3) Map
void main(List<String> args) {
var infoMap1 = {'name': 'why', 'age': 18};
print(infoMap1['name']); // why
// 获取所有的entries
print(
'${infoMap1.entries} ${infoMap1.entries.runtimeType}'); // (MapEntry(name: why), MapEntry(age: 18)) MappedIterable<String, MapEntry<String, Object>>
// 获取所有的keys
print(
'${infoMap1.keys} ${infoMap1.keys.runtimeType}'); // (name, age) _CompactIterable<String>
// 4.获取所有的values
print(
'${infoMap1.values} ${infoMap1.values.runtimeType}'); // (why, 18) _CompactIterable<Object>
// 5.判断是否包含某个key或者value
print(
'${infoMap1.containsKey('age')} ${infoMap1.containsValue(18)}'); // true true
// 6.根据key删除元素
infoMap1.remove('age');
print('${infoMap1}'); // {name: why}
}
4 枚举类型
main(List<String> args) {
print(Colors.red); // Colors.red
print(Colors.red.index); // 0
}
enum Colors {
red,
green,
blue
}