美文网首页Flutter Study
【Dart】枚举/库与生态

【Dart】枚举/库与生态

作者: Merbng | 来源:发表于2022-06-12 00:48 被阅读0次

    枚举

    • 枚举是数量固定的常量值,通过enum关键字声明
    enum Color{red,green,blue}
    
    • 枚举的values常量,可以获取所有枚举值列表
    List<Color>colors = Color.values;
    
    • 可以通过index获取值的索引
    assert(Color.green.index==1);
    
    enum Color { red, grren, blue }
    
    void main() {
      //通过index返回枚举中具体常量的值
      print(Color.grren.index);
      //通过values 返回常量值列表
      print(Color.values);
      List<Color> colors = Color.values;
      print(colors);
      //通过下标,访问列表中的内容
      print(colors[0]);
      //通过forEach去遍历列表的内容
      colors.forEach((element) {
        print('valie:$element,index:${element.index}');
      });
    }
    
    

    Dart库与生态

    简介
    image.png

    自定义库

    image.png
    image.png
    // library MyCustom;
    //建议写成小写字母+下划线形式
    library my_custom;
    
    class MyCustom {
      String name = 'MyCustom';
      static num version = 1.0;
    
      void info() {
        print('我是自定义库');
      }
    }
    
    
    import 'lib/MyCustom.dart';
    
    void main() {
      MyCustom mc = new MyCustom();
      mc.info();
      print(MyCustom.version);
    }
    
    
    image.png
    • 引入部分库(仅引入需要的内容)
      • 包含引入(show)
      • 排除引入(hide)
    void f1() {
      print('f1 is running');
    }
    
    void f2() {
      print('f1 is running');
    }
    
    void f3() {
      print('f1 is running');
    }
    
    
    
    import 'dart:math';
    // import 'lib/common.dart' show f1, f3; //show后面指定包含引入的内容
    import 'lib/common.dart' hide f1, f3;//hide会隐藏后面的内容
    void main() {
      f1();
      //f2没有在show里面指定
      // f2();
      f3();
    }
    
    
    
    image.png
    image.png
    void f1() {
      print('f1 of function  is running');
    }
    
    void hello() {
      print('hello ');
    }
    
    
    
    
    import 'lib/common.dart';
    import 'lib/function.dart' as func;//给库添加前缀 解决命名冲突
    
    void main() {
      f1();
      func.f1();
    }
    
    
    image.png
    import 'lib/function.dart' deferred as func;
    
    void main() {
      //延迟加载
      // func.f1();
      // func.hello();
      print(1);
      greet();
      print(2);
      print(3);
    }
    
    Future greet() async {
      await func.loadLibrary();
      func.hello();
    }
    
    
    image.png
    //与主库建立联系
    part of phone;
    
    class Cameraa {
      String name = '摄像头';
    
      void info() {
        print('我是摄像头');
      }
    }
    
    
    //与主库建立联系
    part of phone;
    
    class Processor {
      String name = '处理器';
    
      void info() {
        print('我是处理器');
      }
    }
    
    
    library phone;
    
    //与分库建立联系
    part 'Camera.dart';
    
    part 'Processor.dart';
    
    
    import '/phone/main.dart';
    
    void main() {
      Cameraa c = new Cameraa();
      c.info();
      Processor p = new Processor();
      p.info();
    }
    
    
    
    import '29_part.dart' as phone ;
    void main() {
      phone.main();
    }
    
    
    image.png

    第三方库

    image.png

    创新无极限!只要敢想,没有什么不可能,立即跳出思维的框框吧。如果你正处于一个上升的朝阳行业,那么尝试去寻找更有效的解决方案:更招消费者喜爱、更简洁的商业模式。如果你处于一个日渐萎缩的行业,那么赶紧在自己变得跟不上时代之前抽身而出

    相关文章

      网友评论

        本文标题:【Dart】枚举/库与生态

        本文链接:https://www.haomeiwen.com/subject/nkpvmrtx.html