07 | 函数、类与运算符:Dart是如何处理信息的?
该思维导图由 AI 生成,仅供参考
函数
- 深入了解
- 翻译
- 解释
- 总结
Dart是一门面向对象的编程语言,本文介绍了Dart中函数、类和运算符的处理方式。在Dart中,函数也是对象,可以被定义为变量和参数传递给其他函数。文章详细介绍了函数的定义和使用方式,包括箭头函数、可选命名参数和可选参数的使用方法。此外,文章还介绍了Dart中类的定义和初始化方式,包括成员变量、构造函数、初始化列表和命名构造函数的使用。通过具体的代码示例,读者可以了解Dart中函数、类和运算符的基本思路和使用方法。文章内容简洁明了,适合初学者快速了解Dart的基本特点和语法。 在面向对象的编程语言中,复用其他类的变量与方法的方式一般有继承和接口实现。Dart中,你可以对同一个父类进行继承或接口实现。文章详细介绍了继承和接口实现的差别,并介绍了混入的概念,以解决多重继承可能导致的歧义问题。 另外,文章还介绍了Dart中的运算符,包括?.运算符、??= 运算符和??运算符的使用方法。此外,还介绍了自定义运算符的方法,以及运算符覆写的概念。 总的来说,本文通过简洁明了的语言和具体的代码示例,帮助读者快速了解了Dart的基本设计思路和语法特性,使读者具备了快速上手实践的能力。
《Flutter 核心技术与实战》,新⼈⾸单¥59
全部留言(34)
- 最新
- 精选
- Young1.一般来讲,单继承,多实现,混入是多继承 A.继承是子类需要复用父类的方法实现 B.实现接口是复用接口的参数,返回值,和方法名,但不复用方法的实现,在Dart中实现抽象类 更像在java中实现用interface修饰的接口 C.混入是多继承,当被混入的类有多个同名方法时,调用子类的该方法时,会调用with声明的最后一个拥有该方法的类中的该方法,同时混入中的父类不能继承
作者回复: 厉害了
2019-07-13587 - 宋锡珺1. 父类继承:和java类似,继承了父类的实例变量和各种方法。但是不能用一个普通方法重写getter。 抽象类:抽象类不能实例化,会报出AbstractClassInstantiationError错误。 接口:成员变量,成员函数需要重新声明实现。和java不一样的是,没有接口声明,可以通过抽象类来描述接口。 mixin:使一个类有多个父类。例如:在Flutter中常见的我们需要继承state。如果需要页面保持状态,我们还需要AutomaticKeepAliveClientMixin来保持页面状态。这时就需要通过with来使用mixin. 2. 子类构造函数调用父类非命名,无参构造函数。先父后子。 1.初始化列表 2.父类的无参构造函数 3当前类的无参构造函数 通过named constructors可以使父类有多个构造函数,但是子类是不能继承父类的构造函数的。如果使用父类的构造函数,子类需要实现父类的构造函数。
作者回复: 厉害了
2019-07-1421 - Qilin Lou一个小问题,在覆写相等运算符时为何需要传入dynamic变量,而不能传入Vector呢? bool operator==(dynamic v) => x == v.x && y == v.y; bool operator==(Vector v) => x == v.x && y == v.y; // 报错
作者回复: 因为operator==是继承自Object类,这个类的参数声明就是dynamic
2019-07-1413 - Geek_869250mixin和react有什么不同,react已经不使用了
作者回复: 没啥不同。Mixins 的问题在于太过于灵活,与OOP的设计思路完全相反,小范围用问题不大,但如果你的类中引用了多个mixin,必须非常清楚每个mixin都干了什么,你使用的方法来自于哪个mixin,否则有代码被覆盖的风险。
2019-07-2928 - 昨夜星辰可选命名参数和可忽略参数有什么区别?
作者回复: 对调用者调用方式不同,一个需要显式声明参数名,参数位置无所谓;一个不用,但需要按照顺序摆放参数。
2019-07-1724 - 路灯客栈小白问下 Point(this.x, this.y) : z = 0; 这里的‘ : ’的用法解释? 和‘=>’有什么区别?
作者回复: :用于构造函数初始化其内部属性或做一些前置检查; =>是用于普通单行函数的语法糖
2019-07-1434 - 颜为晨可选命名参数是不是可以理解成 map?
作者回复: 可以
2019-09-103 - 加温后的啤酒老师,你文中说“子类可以根据需要覆写构造函数及父类方法”,这句话用在大多数编程语言比如java中是对的,但是用在Dart中是不对的吧。Dart构造函数的特点是子类不会继承父类的构造函数,Dart官方文档里也有提到“Subclasses don’t inherit constructors from their superclass”,所以也就谈不上覆写构造函数。老师,我的理解对吗?
作者回复: “子类可以根据需要覆写构造函数”这里指的是子类可以通过子类自己的构造函数改变父类的变量初始化方式
2019-12-172 - sherry慈问老师一个问题,可选命名参数可以和必传参数共存吗
作者回复: 当然可以呀
2019-12-152 - Captain就像,具体什么是命名构造函数,好处是什么?什么是初始化列表?是指什么列表呢?好处是什么?
作者回复: 命名构造函数就是给构造函数起了个名字,使用"类名.构造函数名"的方式初始化实例; 初始化列表是在构造函数体外,对变量进行批量赋值的机制,不仅简洁,代码执行性能也更优。
2019-11-13