1 声明变量

变量名 + “_”, 则表示 只能在当前文件内使用

  1. void main(List<String> args) {
  2. // 1 明确声明
  3. String name = "why";
  4. // 2 类型推导
  5. // 2.1 final声明常量, 运行期有确定值即可
  6. final height = aaa();
  7. // 2.2 const声明常量, 编绎期就要有确定值
  8. const address = "广州市";
  9. // 2.3 var声明变量(常用), 赋值会导致确定类型, 不能再改变其类型
  10. var age = 20;
  11. // age = "abc"
  12. // 2.4 dynamic声明变量, 可改变类型(运行时存在安全隐患)
  13. dynamic slogon = "123";
  14. print(slogon.runtimeType); // 运行时类型
  15. slogon = 1.23;
  16. // 2.5 Object声明变量, 可改变类型(xxx as String), 但调用方法时会报错
  17. Object xxx = "123";
  18. // print(xxx.length); // dart解释器不会推导出Object类型所包含的方法
  19. }
  20. int aaa() {
  21. return 3;
  22. }

2 字符串格式化

  1. void main(List<String> args) {
  2. var name = "why";
  3. var age = 19;
  4. var height = 1.88;
  5. var message = "my name is ${name}, age is ${age}, height is ${height}";
  6. var message2 = "my name is $name, age is $age, height type is ${height.runtimeType}";
  7. print(message);
  8. print(message2);
  9. }

3 集合类型

(1) List

  1. var numbers = [1, 2, 3, 4];
  2. // 添加/删除/元素
  3. numbers.add(5);
  4. // 删除值为1的元素(只删除从左往右数的第一个)
  5. numbers.remove(1);
  6. // 是否包含某元素
  7. print(numbers.contains(2));
  8. // List根据index删除元素
  9. numbers.removeAt(3);
  10. print('$numbers');
  11. // 插入
  12. numbers.insert(0, 1); // 在索引0处插入1
  13. // 插入一个列表
  14. numbers.insert(1, [8,9]) // 在索引1处插入8和9,原来索引>=1的元素统统后移
  15. // 反转
  16. var numbers2 = numbers.reversed.toList();

(2) Set

  1. // 可明确指明类型, Set里的元素不能重复
  2. Set<int> numbersSet = {1, 2, 3, 4};
  3. numbersSet.add(5);
  4. numbersSet.remove(1);
  5. print(numbersSet.contains(2));

(3) Map

  1. void main(List<String> args) {
  2. var infoMap1 = {'name': 'why', 'age': 18};
  3. print(infoMap1['name']); // why
  4. // 获取所有的entries
  5. print(
  6. '${infoMap1.entries} ${infoMap1.entries.runtimeType}'); // (MapEntry(name: why), MapEntry(age: 18)) MappedIterable<String, MapEntry<String, Object>>
  7. // 获取所有的keys
  8. print(
  9. '${infoMap1.keys} ${infoMap1.keys.runtimeType}'); // (name, age) _CompactIterable<String>
  10. // 4.获取所有的values
  11. print(
  12. '${infoMap1.values} ${infoMap1.values.runtimeType}'); // (why, 18) _CompactIterable<Object>
  13. // 5.判断是否包含某个key或者value
  14. print(
  15. '${infoMap1.containsKey('age')} ${infoMap1.containsValue(18)}'); // true true
  16. // 6.根据key删除元素
  17. infoMap1.remove('age');
  18. print('${infoMap1}'); // {name: why}
  19. }

4 枚举类型

  1. main(List<String> args) {
  2. print(Colors.red); // Colors.red
  3. print(Colors.red.index); // 0
  4. }
  5. enum Colors {
  6. red,
  7. green,
  8. blue
  9. }