Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
377 views
in Technique[技术] by (71.8m points)

Why there is a colon symbol (:) with the class constructor in Dart?

I am new in Dart(OOP Languange) which it is a bit similar in Java

But this code get me confusion

What is the purpose of colon(:) before the super keyword within SchoolID class that has been inherit with Person class? Here is the code:

class Person {
  String name;
  int age;
  int height;

  Person({this.name, this.age, this.height});
}

class SchoolID extends Person {
  int id;
  int year;

  String name;
  SchoolID({this.id, this.year, this.name}) : super(name: name);
}

Another Example ,,, focus on colon the fishmap

AllFish.fromJson(Map<String, dynamic> json)
      : fishMap = json.map(
          (String k, dynamic v) => MapEntry(
            k,
            Fish.fromJson(v),
          ),
        );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It's considered as an initializer list which runs before the constructor body, here you're calling the super that means the constructor of your Person class.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...