美文网首页flutter & DartDartFlutter
Dart语言的运算符重载

Dart语言的运算符重载

作者: iCloudEnd | 来源:发表于2019-02-06 11:28 被阅读5次

什么是运算符重载(operator overloading)

在软件开发过程中,运算符重载(英语:operator overloading)是多态的一种。运算符重载通常只是一种语法糖,这种语法对语言的功能没有影响,但是更方便程序员使用。让程序更加简洁,有更高的可读性。

语法糖的现实意义

《Java核心技术36讲》

在日常工作过程中,我们读代码读机会往往超过写代码,软件工程是门协作的艺术

我们写的代码主要是给机器和人看的,给机器看的可以通过代码测试和实际运行来进行检验,给人的目前还没太好的评价方式。不过在设计一门语言的时候,方便阅读也是语言设计重点考虑的一个方面。

运算符重载在功能实现方面并没有任何影响,但是会给未来的自己和其他程序员带来极大的便利。

Dart语言的运算符重载

第一步创建个类

class Role{
  final String name;
  final int accessLevel;
  
  const Role(this.name,this.accessLevel);
}

main()
{
  print('hello  operator overloading');
}

第二步 通过函数实现Role比较

class Role{
  final String name;
  final int accessLevel;
  
  const Role(this.name,this.accessLevel);
}

main()
{
  var adminRole =new Role('管理员',3);
  var reporterRole = new Role('报告员',2);
  var userRole= new Role('用户',1);
  if(adminRole.accessLevel > reporterRole.accessLevel){
    print("管理员的权限大于报告员");
  }  
  if(reporterRole.accessLevel > userRole.accessLevel){
    print("报告员的权限大于用户");
  }  
}

第三步 重载运算符

class Role {
  final String name;
  final int _accessLevel;

  const Role(this.name, this._accessLevel);
  bool operator >(Role Other) {
    return this._accessLevel > Other._accessLevel;
  }

  bool operator <(Role Other) {
    return this._accessLevel < Other._accessLevel;
  }
}

main() {
  var adminRole = new Role('管理员', 3);
  var reporterRole = new Role('报告员', 2);
  var userRole = new Role('用户', 1);
  if (adminRole > reporterRole) {
    print("管理员的权限大于报告员");
  }
  if (reporterRole > userRole) {
    print("报告员的权限大于用户");
  }
}

相关文章

  • [Flutter]flutter基础之Dart语言基础(四)

    一、运算符重载 Dart 支持运算符重载,使用 operator 关键字,语法格式为:operator 运算符 ,...

  • Dart语言的运算符重载

    什么是运算符重载(operator overloading) 在软件开发过程中,运算符重载(英语:operator...

  • C++重载

    重载 C++语言规定: 重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符...

  • [Flutter]flutter基础之Dart语言基础(二)

    一、运算符 Dart 中,支持各种类型运算符,且其中的一些操作符还支持重载操作。 1. 算数运算符 Dart 中的...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • 运算符重载及其他约定

    7.1 重载算术运算符 重载二元算术运算符 重载复合赋值运算符 重载一元运算符 重载比较运算符 等号运算符:‘eq...

  • 2019-07-11 运算符的重载

    运算符的重载 重载运算符 (“::”,“.*”,“.”,“?:”)不能被重载。 重载运算符时,不能改变其本质,如不...

  • Dart运算符

    dart运算符和其他语言基本相似 1、算术运算符【+ (加)】、【— (减)】、【* (乘)】、【/ (除)】、【...

网友评论

    本文标题:Dart语言的运算符重载

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