Dart中的类构造函数语法之间的区别

Dart中的类构造函数语法之间的区别,第1张

Dart中的类构造函数语法之间的区别

在任何人获得对新对象的引用之前,必须完全初始化Dart对象。由于构造函数的主体可以访问

this
,因此需要 进入构造函数的主体 之前
初始化该对象。

为此,生成的Dart构造函数具有一个初始化程序列表,看起来类似于C ++,您可以在其中初始化字段(包括final字段),但是您尚不能访问对象本身。语法:

Movie.fromJson(Map json)    : title = json["title"],      posterPath = json["poster_path"],      overview = json['overview'];

使用了初始化列表(分配后的列表

:
)来初始化最后的实例变量
title
posterPath
overview

第一个构造函数使用“初始化形式”

this.title
将参数直接放入字段中。

构造函数

Movie(this.title, this.posterPath, this.overview);

实际上是以下方面的简写:

Movie(String title, String posterPath, String overview)    : this.title = title, this.posterPath = posterPath, this.overview = overview;

您的构造函数可以将所有这些与主体结合起来:

Movie(this.title, this.posterPath, String overview)   : this.overview = overview ?? "Default Overview!" {  if (title == null) throw ArgumentError.notNull("title");}

(const构造函数不能具有主体,但可以具有对允许的表达式有一些限制的初始化列表,以确保可以在编译时对其进行求值)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4940222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存