2022-03-02 dart语法之Extension Meth

2022-03-02  本文已影响0人  我是小胡胡123

https://cloud.tencent.com/developer/article/1889373

一、类定义

1、 类
class 普通类 (成员方法必须要实现)
mixin 多继承,混入类(不能有构造方法)
abstract class 抽象类 (定义抽象方法)

2、类继承, 3个关键字:
extends 继承
implements 继承(父类方法必须要实现)
with 多继承(父类不能有构造方法)

3、约束:
on 约束(继承mixin类的类,必须同时继承约束类)

extends 和 on 只能用一个。on用在mixin类后面,表示继承该mixin类的那些类,也需要继承on类

例如这样:

class A1 extends A4 {}

class A2 {}

mixin A3 on A4 {}

class A4 {}

class A5 extends A1 with A3 implements A2 {}

二、类扩展

https://juejin.cn/post/6844904191488425992

给一个现有的类,扩展方法。

extension 名字 on 某个类名{
  新方法;
}

在当前文件有效:扩展名字下滑线开头,或者省去扩展名字。
想到了objective-c的extension和category,类扩展(extension)是分类(category)的一个特例,有时候也被称为匿名分类 。

extension _名字 on 某个类名{
  新方法;
}

例如这样:

extension TxtExtensions on String {
  String get transformUnicode {
    var transform =
        this.replaceAllMapped(RegExp('\\\\U111[0-9a-zA-Z]{5}'), (match) {
      var radixString =match.group(0).substring(4);
      return radixString;
    });
    return transform;
  }

扩展属性可以吗? 不可以。其他的限制我从别的地方复制过来了:
扩展不支持的,有报错的时候应该就可以对号入座,因为编译器会直接报错。

上一篇 下一篇

猜你喜欢

热点阅读