• Dart 编程中的不可变注解


    我们知道 const 关键字在对象中提供了不变性。但是对于我们希望整个类本质上不可变的情况呢?

    在这种情况下,我们使用 dart 库的元包中存在的不可变注释。

    语法

    import 'pacakge:meta/meta.dart';
    
    @immutable
    class User {
       String name;
    }

    应该注意的是,一旦我们使用不可变符号声明任何类,它的所有对象以及对象属性和方法也将是不可变的。

    示例

    考虑下面显示的例子 -

    import 'pacakge:meta/meta.dart';
    
    @immutable
    class User {
       final String name;
       User(this.name);
       User.withPrint(this.name){
          print('New user added ${this.name}');
       }
    }
    
    void main(){
       var u = User.withPrint('Mukul');
       u = {};
       print(u.name);
    }
    

      

    在上面的代码中,我们将整个类声明为不可变的,因此我们通过它实例化的任何对象也将是不可变的。在 main 函数中,我们试图为变量 u 分配一个不同的值,这会给我们一个编译错误。

    输出结果

    Error: Overriding not allowed, as 'u' is immutable.
       u = {};
       ^^^^
    

      

  • 相关阅读:
    Intramart Service一览
    标签库列表
    CSS Expression用法总结
    URI,URL,URN的区别
    JSon数据查询Jlinq
    ie6,ie7兼容性总结
    实例说明扩展JQuery方式
    Android中的Parcel和Parcelable
    absolute绝对定位的非绝对定位用法
    [转载] 默认Web字体样式
  • 原文地址:https://www.cnblogs.com/webcabana/p/16205815.html
Copyright © 2020-2023  润新知