美文网首页
Dart编程语言入门学习

Dart编程语言入门学习

作者: 董董董董董董董董董大笨蛋 | 来源:发表于2019-05-19 18:19 被阅读0次

    1.数据类型

    Boolean

    void main(){
      bool isTrue = true;
      bool isFalse = false;
    
      print("Hello".isEmpty);
    }
    

    Number

    void main(){
      num a = 10;
      a = 12.5;
    
      int b = 20;
    //  b = 20.5;
    
      double c = 10.5;
    //  c = 30;
    
      print(b + c);
      print(b - c);
      print(b * c);
      print(b / c);
      print(b ~/ c);
      print(b % c);
    
      print(0.0 / 0.0);
    
      print(b.isEven);
      print(b.isOdd);
      int d = 11;
      print(d.isEven);
      print(d.isOdd);
    
      int e = -100;
      print(e.abs());
    
      double f = 10.5;
      print(f.round());
      print(f.floor());
      print(f.ceil());
    
      print(f.toInt());
      print(d.toDouble());
    
    }
    
    

    String

    void main(){
      String str1 = 'Hello';//""
      String str2 = '''Hello
                      Dart''';//"""
      print(str2);
    
    //  String str3 = 'Hello \n Dart';
      String str3 = r'Hello \n Dart';
      print(str3);
    
      String str4 = "This is my favorite language";
      print(str4 + "New");
      print(str4 * 5);
      print(str3 == str4);
      print(str4[1]);
    
      int a = 1;
      int b = 2;
      print("a + b = ${a + b}");
      print("a = $a");
    
      print(str4.length);
      print(str4.isEmpty);
    
      print(str4.contains("This"));
      print(str4.substring(0,3));
      print(str4.startsWith("a"));
      print(str4.endsWith("ge"));
    
      var list = str4.split(" ");
      print(list);
    
      print(str4.replaceAll("This", "That"));
    }
    
    

    Const

    void main(){
      var a;
      print(a);
    
      a = 10;
      print(a);
    
      a = 'Hello Dart';
      print(a);
    
      var b = 20;
      print(b);
    
      final c = 30;
    //  c = 50;
    
      const d = 20;
    //  d = 50;
    
    }
    

    List

    void main(){
      var list1 = [1,2,3,"Dart",true];
      print(list1);
      print(list1[2]);
      list1[1] = "Hello";
      print(list1);
    
      var list2 = const [1,2,3];  //不可变
    //  list2[0] = 5;
    
      var list3 = new List();
    
      var list = ["hello","dart"];
      print(list.length);
      list.add("New");
      print(list);
    
      list.insert(1, "Java");
      print(list);
    
      list.remove("Java");
      print(list);
    
    //  list.clear();
    //  print(list);
    
      print(list.indexOf("dart1"));
      list.sort();
      print(list);
    
      print(list.sublist(1));
    
      list.forEach(print);
    }
    
    

    Map

    void main(){
      var map1 = {"first":"Dart",1:true,true:"2"};
      print(map1);
    
      print(map1["first"]);
      print(map1[true]);
      map1[1] = false;
      print(map1);
    
      var map2 = const {1:"Dart",2:"Java"};//不可变
    //  map2[1] = "Python";
    
      var map3 = new Map();
    
      var map = {"first":"Dart","second":"Java","third":"Python"};
      print(map.length);
    //  map.isEmpty;
    
      print(map.keys);
      print(map.values);
    
      print(map.containsKey("first"));
      print(map.containsValue("C"));
    
      map.remove("third");
      print(map);
    
      map.forEach(f);
    
      var list = ["1","2","3"];
      print(list.asMap());
    }
    
    void f(key,value){
      print("key=$key,value=$value");
    }
    
    

    dynamic

    void main(){
      var a;
      a = 10;
      a = "Dart";
    
      dynamic b = 20;
      b = "JavaScript";
    
      var list = new List<dynamic>();
      list.add(1);
      list.add("hello");
      list.add(true);
      print(list);
    }
    
    

    2.运算符

    operator_arithmetic

    void main(){
      int a = 10;
      int b = 2;
    
      print(a + b);
      print(a - b);
      print(a * b);
      print(a / b);
      print(a ~/ b);
      print(a % b);
    
      print(a++);//11
      print(++a);//12
    
      print(a--);//11
      print(--a);//10
    }
    
    

    operator_asignment

    void main(){
      int a = 10;
      int b = 5;
    
      b ??= 10;
      print(b);
    
      a += 2;
      print(a);
    
      a -= b;
      print(a);
    
      a *= b;
    //  a /= b;
      a ~/= b;
      a %= b;
    
    }
    

    operator_conditional

    void main(){
      int gender = 1;
      String str = gender == 0 ? "Male=$gender" :"Female=$gender";
      print(str);
    
      String a = "Dart";
      String b = "Java";
      String c = a ?? b;
      print(c);
    
    
    }
    
    

    operator_logical

    void main(){
      bool isTrue = true;
      print(!isTrue);
    
      bool isFalse = false;
      print(isTrue && isFalse);
      print(isTrue || isFalse);
    
      String str = "";
      print(!str.isEmpty);
    
    }
    
    

    operator_relational

    void main(){
      int a = 5;
      int b = 3;
    
      print(a == b);
      print(a !=b );
      print(a > b);
      print(a < b);
      print(a >= b);
      print(a <= b);
    
      String strA = "123";
      String strB = "123";
      print(strA == strB);
    }
    
    

    3.控制语句

    break_and_continue

    void main(){
      var list = [1,2,3];
      for(var item in list){
        if(item == 2) {
    //      break;
          continue;
        }
        print(item);
      }
    
      print("-----");
      var list2 = [4,5,6];
      for(var item1 in list){
        if(item1 == 2){
          break;
        }
    
        for(var item2 in list2){
          if(item2 == 5){
            break;
          }
          print(item2);
        }
      }
      
    }
    
    

    stmt_assert

    void main(){
      String str;
      assert(str != null);
    }
    
    

    stmt_for

    void main(){
      var list = [1,2,3,4,5];
    
      for(var index = 0;index < list.length;index++){
        print(list[index]);
      }
    
      print("---------");
      for(var item in list){
        print(item);
      }
    
    }
    
    

    stmt_if

    void main(){
      int score = 100;
    
      if(score >= 90){
        if(score == 100){
          print("完美");
        }else {
          print("优秀");
        }
      }else if(score > 60){
        print("良好");
      }else if(score == 60){
        print("及格");
      }else {
        print("不及格");
      }
    }
    

    stmt_switch

    void main(){
      String language = "Java";
    
      switch(language){
        case "Dart":
          print("Dart is my favorite");
          break;
        case "Java":
          print("Java is my favorite");
          break;
        case "Python":
          print("Python is my favorite");
          break;
        default:
          print("None");
      }
    
      switch(language){
        Test:
        case "Dart":
          print("Dart is my favorite");
          break;
        case "Java":
          print("Java is my favorite");
          continue Test;
    //      break;
        case "Python":
          print("Python is my favorite");
          break;
        default:
          print("None");
      }
    }
    
    

    stmt_while

    void main(){
      int count = 0;
    
      while(count < 5){
        print(count++);
      }
    
      print("---$count----");
    
      do{
        print(count--);
      }while(count > 0 && count < 5);
    
    
    }
    

    4.方法

    function_declaration

    void main(List args){
      print(args);
    
      print(getPerson("张三", 18));
    
      print(printPerson("李四", 20));
    }
    
    int gender = 1;
    getPerson(name,age) => gender == 1 ? "name=$name,age=$age":"Test";
    
    printPerson(name,age){
      print("name=$name,age=$age");
    }
    
    

    function_optional_param可选参数

    void main(){
    
      printPerson("李四");
      printPerson("李四",age: 20);
      printPerson("李四",age: 20,gender: "Male");
      printPerson("李四",gender: "Male");
    
      printPerson2("张三");
      printPerson2("张三",18);
      printPerson2("张三",18,"Female");
    }
    
    printPerson(String name,{int age,String gender}){
      print("name=$name,age=$age,gender=$gender");
    }
    
    printPerson2(String name,[int age,String gender]){
      print("name=$name,age=$age,gender=$gender");
    }
    
    

    function_default_param默认参数

    void main(){
    
      printPerson("李四");
      printPerson("李四",age: 20);
      printPerson("李四",gender: "Male");
    }
    
    printPerson(String name,{int age = 30,String gender = "Female"}){
      print("name=$name,age=$age,gender=$gender");
    }
    

    function_object方法对象

    void main(){
      Function func = printHello;
      func();
    
      var list = [1,2,3,4];
      list.forEach(print);
    
      var list2 = ["h","e","l","l","o"];
      print(listTimes(list2, times));
    }
    
    void printHello(){
      print("Hello");
    }
    
    List listTimes(List list ,String times(str)){
      for(var index = 0;index < list.length;index++){
        list[index] = times(list[index]);
      }
    
      return list;
    }
    
    
    String times(str){
      return str*3;
    }
    
    
    

    function_anonymous匿名方法

    void main(){
    
      var func = (str){
        print("Hello---$str");
      };
      func(30);
    
    //  ((){
    //    print("Test");
    //  })();
      var list2 = ["h","e","l","l","o"];
    
      var result = listTimes(list2, (str){ return str * 3;});
      print(result);
    
      print(listTimes2(list2));
    
    }
    
    List listTimes(List list ,String times(str)){
      for(var index = 0;index < list.length;index++){
        list[index] = times(list[index]);
      }
    
      return list;
    }
    
    List listTimes2(List list ){
      var func = (str){ return str * 3;};
    
      for(var index = 0;index < list.length;index++){
        list[index] = func(list[index]);
      }
    
      return list;
    }
    
    

    function_closure闭包

    void main(){
      var func = a();
      func();
      func();
      func();
      func();
    
    }
    
    a(){
      int count = 0;
    
    //  printCount(){
    //    print(count++);
    //  }
    
      return (){
        print(count++);
      };
    }
    
    

    5.面向对象

    class_and_object类与对象

    import 'person.dart';
    
    void main() {
        var person = new Person();
        person.name = "Tom";
        person.age = 20;
    
        print(person.name);
        print(person.address);
    
        person.work();
    }
    
    //person.dart
    class Person {
      String name;
      int age;
      final String address = "";
    
      void work(){
        print("Name is $name,Age is $age,He is working...");
      }
    }
    
    

    calculated_property计算属性

    void main() {
        var rect = new Rectangle();
        rect.height = 20;
        rect.width = 10;
    
        print(rect.area);
    
        rect.area = 200;
        print(rect.width);
    
    }
    
    class Rectangle{
      num width,height;
    
      num get area => width * height;
          set area(value){
            width = value / 20;
          }
    }
    

    constructors构造方法

    void main() {
        var person = new Person("Tom",20,"Male");
        new Person.withName("John");
        new Person.withAge(20);
    }
    
    class Person{
      String name;
      int age;
    
      final String gender;
    
      Person(this.name,this.age,this.gender);
    
      Person.withName(String name){
        this.name = name;
      }
    
      Person.withAge(this.age);
    
      void work(){
        print("Work...");
      }
    }
    

    const_constructors常量构造方法

    void main() {
        const person = const Person("Tom",20,"Male");
    
        person.work();
    
    }
    
    class Person{
      final String name;
      final int age;
    
      final String gender;
    
      const Person(this.name,this.age,this.gender);
    
      void work(){
        print("Work...");
      }
    }
    
    

    factory_constructors工厂构造方法

    class Logger {
      final String name;
    
      static final Map<String, Logger> _cache = <String, Logger>{};
    
      factory Logger(String name) {
        if (_cache.containsKey(name)) {
          return _cache[name];
        } else {
          final logger = Logger._internal(name);
          _cache[name] = logger;
          return logger;
        }
      }
    
      Logger._internal(this.name);
    
      void log(String msg) {
        print(msg);
      }
    }
    

    init_list初始化列表

    void main() {
        var person = new Person("Tom", 20, "Male");
    }
    
    class Person{
      String name;
      int age;
    
      final String gender;
    
      Person(this.name,this.age,this.gender);
    
      Person.withMap(Map map): name = map["name"],gender = map["gender"]{
        age = map["age"];
      }
    
      void work(){
        print("Work...");
      }
    }
    

    static_member静态成员

    void main() {
      var page = new Page();
    
      Page.scrollDown();
    }
    
    class Page{
    
      static const int maxPage = 10;
    
      static int currentPage = 1;
    
      //下滑
      static void scrollDown(){
        currentPage = 1;
        print("ScrollDown...");
      }
    
      //上滑
      void scrollUp(){
        currentPage++;
        print("scrollUp...");
      }
    
    }
    
    

    object_operator对象操作符

    void main() {
    //  Person person = new Person();
    //  person?.name;
    //  var person;
    //  person = "";
    //  person = new Person();
    
    //  (person as Person).work();
    
    //  if (person is Person){
    //    person.work();
    //  }
    
      new Person()
        ..name = "Tom"
            ..age = 20
            ..work();
    }
    
    class Person{
      String name;
      int age;
    
      void work(){
        print("Work...$name,$age");
      }
    }
    
    

    object_call对象call

    void main() {
        var person = new Person();
    
        print(person("Test",30));
    
    }
    
    class Person{
      String name;
      int age;
    
    //  void work(){
    //    print("Name is $name,Age is $age");
    //  }
    
      String call(String name,int age){
        return "Name is $name,Age is $age";
      }
    }
    
    

    6.面向对象扩展

    继承

    import 'person.dart';
    
    void main() {
    //  var student = new Student();
    //  student.study();
    //
    //  student.name = "Tom";
    //  student.age = 16;
    //
    //  print(student.isAdult);
    //
    //  student.run();
    
      Person person = new Student();
      person.name = "Tom";
      person.age = 18;
    
      if(person is Student){
        person.study();
      }
    
      print(person);
    }
    
    class Student extends Person{
    
      void study(){
        print("Student study...");
      }
    
      @override
      bool get isAdult => age > 15;
    
    
      @override
      void run() {
        print("Student run...");
      }
    
    }
    
    
    
    class Person {
      String name;
      int age;
      String _birthday;
    
      bool get isAdult => age > 18;
    
      void run(){
        print("Person run...");
      }
    
      @override
      String toString() {
        return "Name is $name,Age is $age";
      }
    }
    
    

    继承中的构造方法

    
    void main() {
      var student = new Student("Tom","Male");
    
      print(student.name);
    }
    
    class Person{
      String name;
    
      Person(this.name);
    
      Person.withName(this.name);
    }
    
    class Student extends Person{
      int age;
    
      final String gender;
    
      Student(String name,String g) : gender = g, super.withName(name);
    }
    
    

    抽象类

    void main() {
      var person = new Student();
      person.run();
    }
    
    abstract class Person{
    
      void run();
    }
    
    class Student extends Person{
      @override
      void run() {
        print("run...");
      }
    
    }
    
    

    接口

    void main() {
      var student = new Student();
      student.run();
    }
    
    //class Person{
    //  String name;
    //
    //  int get age => 18;
    //
    //  void run(){
    //    print("Person run...");
    //  }
    //}
    
    abstract class Person{
    
      void run();
    
    }
    
    class Student implements Person{
    
      @override
      void run() {
        print("Student run...");
      }
    
    }
    
    

    mixins

    void main() {
    //  var d = new D();
    //  d.a();
    }
    
    //class A{
    //  void a(){
    //    print("A.a()...");
    //  }
    //}
    //
    //class B{
    //
    //  void a(){
    //    print("B.a()...");
    //  }
    //
    //  void b(){
    //    print("B.b()...");
    //  }
    //}
    //
    //class Test{}
    //
    //
    //class C{
    //
    //  void a(){
    //    print("C.a()...");
    //  }
    //
    //  void b(){
    //    print("C.b()...");
    //  }
    //
    //  void c(){
    //    print("C.c()...");
    //  }
    //}
    //
    //class D  extends A with C,B{
    //
    //}
    
    
    
    
    abstract class Engine{
      void work();
    }
    
    class OilEngine implements Engine{
      @override
      void work() {
        print("Work with oil...");
      }
    
    }
    
    class ElectricEngine implements Engine{
    
      @override
      void work() {
        print("Work with Electric...");
      }
    
    }
    
    class Tyre{
      String name;
    
      void run(){}
    }
    
    class Car = Tyre with ElectricEngine;
    
    class Bus = Tyre with OilEngine;
    
    
    
    
    

    操作符覆写

    void main() {
    
      var person1 = new Person(20);
      var person2 = new Person(20);
    
      print(person1 > person2);
    
      person1.age;
      print(person1['age']);
    
      print(person1 == person2);
    }
    
    class Person{
      int age;
    
      Person(this.age);
    
      bool operator >(Person person){
        return this.age > person.age;
      }
    
      int operator [](String str){
        if("age" == str){
          return age;
        }
    
        return 0;
      }
    
      @override
      bool operator ==(Object other) =>
          identical(this, other) ||
              other is Person &&
                  runtimeType == other.runtimeType &&
                  age == other.age;
    
      @override
      int get hashCode => age.hashCode;
    
    
    }
    
    

    7.枚举

    enum

    void main() {
      var currentSeason  = Season.winter;
    
      print(currentSeason.index);
    
      switch(currentSeason){
        case Season.spring:
          print("1-3月");
          break;
        case Season.summer:
          print("4-6月");
          break;
        case Season.autumn:
          print("7-9月");
          break;
        case Season.winter:
          print("10-12月");
          break;
      }
    }
    
    enum Season{
      spring,
      summer,
      autumn,
      winter
    }
    
    

    8.泛型

    generics

    void main() {
      var list = new List<int>();
      list.add(1);
    
    //  var utils = new Utils<int>();
    //  utils.put(1);
    
      var utils = new Utils();
      utils.put<int>(1);
    }
    
    class Utils{
    
       void put<T>(T element){
        print(element);
      }
    
    //  void putString(String element){
    //    this.elementStr = element;
    //  }
    }
    

    相关文章

      网友评论

          本文标题:Dart编程语言入门学习

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