dart的基础知识

一 变量和数据类型

    1,定义变量的方法:var 变量名; var 变量名=**; 数据类型 变量名; 数据类型 变量名=***;

    2,基本的数据类型:

         int:整数类型,(var a=1; or int a=1;)

   double : 浮点类型,(var a=1.1; or double a=1.1;)

         num:即可整数类型,也可以是浮点数类型(num a = 1.1)

    String:字符串类型 (var name="xiaoming"; or String name = 'xiaoming';

          字符串可以使用¥符号进行与其他的是数据类型进行拼接(String str = "a = $a"; or cc='${bb}';

     length:查看字符串的长度(int b = a.length)

         bool:布尔类型,就只有两个值,false and true

         List:列表类型(var a=[1,2,3,4]; or List a=[1,2,'qq',1.2]),列表数据类型里面可以放其他的数据类型

    通过索引进行取值,从0开始:var element = list[0];

    length:查看列表的长度,也就是几个元素(int length = list.length;

    如果只想存一种数据类型的数据,那要借助泛型(List<String> list3 = <String>['a', 'b', 'c'];)其他的数据类型就会报错

         Map:相当于字典类型(Map map = {'Apple' : '苹果', 'Banana' : '香蕉', 'Peach' : '桃子', 1 : '1', true : 0};

               根据key取值(String value = map['Apple'];

         Map 的键和值的数据类型也可以是指定的(Map<int, String> map = <int, String>{1 : 'a', 2 : 'b', 3 : 'c'};)如果放入其他的数据类型就会报错

二,if判断

     

var year = 18;
单支判断:
if (year>=20){
    print('大了');
  }

双支判断
if (year>=20){
    print('大了');
  }else{
    print('小了');
  }

多支判断
if (year > 20) {
    print('大了');
  } else if (year == 18) {
    print('正好');
  }else{
    print('小了');
  } 

三,循环语句;

for (var object in flybyObjects) {
  print(object);
}

for (int month = 1; month <= 12; month++) {
  print(month);
}

while (year < 2016) {
  year += 1;
}

四,函数

int test(int n){
  if (n>0){return n;}else{
    return -1;
  }
}

五,导入模块

// Importing core libraries
import 'dart:async';
import 'dart:math';

// Importing libraries from external packages
import 'package:angular2/angular2.dart';

// Importing files
import 'path/to/my_other_file.dart';

六,练习

// import 'dart:io';
int test(int n){
  if (n>0){return n;}else{
    return -1;
  }
}
​
var name="fang";
var year=18;
var bot=4.10;
var li = [name,year,bot];
void main() {
  print(li);
  
  if (year>=20){
    print('大了');
  }else{
    print('小了');
  }
  var aa;
  aa=test(0);
  print(aa);
  
  for (var i in li){
    print(i);
  }
  
  for (int i =1;i<10;i++){
    var aa ='';
    for (int j = i;j<10;j++){
      var bb=i*j;
      var cc;
      if (bb > 9){
        cc='${bb}';
      }else{
        cc='${bb} ';
      }
      aa = '${aa} ${i}*${j}=${cc}';
      
    }
    int a=aa.length;
    print(a);
//     print(aa);
  }
  
  print(11%2);
  
  for (var i=1;i<101;i++){
    if (i%2==0){
      print(i);
    }
  }
  for (var i=1;i<101;i++){
    if (i%2==1){
      print(i);
    }
  }
}
​
View Code

 七,类

class Test{
  String name;
  
  Test(this.name){
    name=this.name;
    print(name);
  }
  
  int test_1(int n){
    return n*2;
  }
  
  void test_3(){
    print(this.name);
    if (this.name=="fang"){
      print('yes');
    }else{
      print('no');
    }
  }
}

// 单继承
class Test_1 extends Test{
  int age;
  
  Test_1(this.age,String name):super(name);
  
  void test_4(){
    var cc = "${name}今年${age}岁";
    print(cc);
  }
  
}

// 多继承
class Test_2{
  int astronauts;
//   Test_2(this.astronauts){
//     astronauts=this.astronauts;
//     print(astronauts);
//   }
  void describeCrew() {
    print('Number of astronauts: $astronauts');
  }
}

class TestMixins extends Test_1 with Test_2 {
  int year;
  TestMixins(this.year,age,name,astronauts):super(age,name);
  void test_mixins(){
    print("test");
  }
}

  // 隐含api
class Test_3{
  String name;
  Test_3(this.name){
    name = this.name;
  }
  void test_3(){
    
  }
  
}
class TestImplement implements Test_3{
  @override
  String name;
  TestImplement(this.name){
    name=this.name;
    print(name);
  }
  @override
  void test_3(){
    print(this.name);
    if (this.name=="fang"){
      print('yes');
    }else{
      print('no');
    }
  }
  
 
}

// 抽象类
abstract class Test_4{
  void describe();
  
  void describeWithEmphasis() {
    print('=========');
    describe();
    print('=========');
  }
}

class Test_5 extends Test_4{
  @override
  void describe(){
    print('test');
  }
}

void main() {
  // class
  var test_2=new Test('fang');
  int aa = test_2.test_1(10);
  print(aa);
  test_2.test_3();
  
  // 单继承
  var test_5 = new Test_1(18,'fang');
  test_5.test_4();
  test_5.test_3();
  
  // 多继承
  var testmixins = new TestMixins(2000,18,'fang',1);
  testmixins.test_4();
  testmixins.describeCrew();
  testmixins.test_mixins();
  
  // 隐含api
  var testimp = new TestImplement('fang');
  testimp.test_3();
  
  //抽象类
  var test5 = new Test_5();
  test5.describeWithEmphasis();
}
View Code
原文地址:https://www.cnblogs.com/fangjie0410/p/11496641.html