Dart编程语言入门学习

栏目: Java · 发布时间: 4年前

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;
//  }
}
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Zen of CSS Design

The Zen of CSS Design

Dave Shea、Molly E. Holzschlag / Peachpit Press / 2005-2-27 / USD 44.99

Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to......一起来看看 《The Zen of CSS Design》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具