Flutter圈子Flutter中文社区Flutter

Dart语言基础

2019-01-18  本文已影响8人  OneXzgj

语法基础:

var bb=123;
final s=123;
const ss=123123;

Dart中的数据类型

1. 数值型-Number 分为2种类型

2. 数值型操作符

3. 字符串-String

3.1 常见操作符: + * == []

String str="hello";    
print(str * 2);    //hellohello   
print(str[1]);   //e
  int e=5;
  int f=8;
  print("e+f = ${e+f}");   //e+f = 13
  print("e= $e"); //e= 5

4. 布尔类型:

bool true false

5. List(数组)

创建List

  var list=[1,2,3];
  var list2=const[1,2,4,6];
  var list3=new List();
image.png

列表-List

6.键值对-Map

map相关操作


image.png

Runes,Symbols类型(用不到)
dynamic 相当于java中的泛型

二、运算符

1.算数运算符:

image.png

2.关系运算符:

== 、!= 、>、 <、 >=、 <=

需要注意的是:java中字符串判断内容是否相同使用equal ,判断地址相同才使用== ,而在Dart中使用== 表示内容判断

3.逻辑运算符:

! 、&&、 ||

4.赋值运算符:

  //  ??= 运算符的含义,如果有初始值,则使用,没有值,则进行赋值
  int r=10;
  int v;
  v ??=r;
  print(v);   // 10

  v=90;
  v ??=r;
  print(v);  //90

条件表达式

  // ?? 条件表达式
  String sss;
  String str2="dart";
  String ss=sss??str2;
  print(ss);   //dart

循环语句

  for(var index=0;index<list.length;index++){
    print(list[index]);
  }

  //for... in...
  for(var item in list){
    print(item);
  }

switch...case...语句:

比较类型:num,String,编译器常量
continue 跳转标签

三、方法特性

可选参数
可选命名参数{param1、param2、...}
可选位置参数[param1、param2、...]

void main(){ 
 getPerson("OnexZgj");
  getPerson("OnexZgj",age: 18);
  getPerson("OnexZgj",age: 18,male: true);

  getPerson2("Linsa");
  getPerson2("Linsa",17);
  getPerson2("Linsa",17,false);

  
}

//可选参数类型
getPerson(String name,{int age,bool male}){
  print("name= $name,age=$age,male=$male");
}


getPerson2(String name,[int age,bool male]){
  print("name= $name,age=$age,male=$male");
}

输出如下结果:
name= OnexZgj,age=null,male=null
name= OnexZgj,age=18,male=null
name= OnexZgj,age=18,male=true
name= Linsa,age=null,male=null
name= Linsa,age=17,male=null
name= Linsa,age=17,male=false

四、方法对象Function

void main() {
 //匿名方法的调用
 Function fuc = (str){
   print("the world is beautiful! $str");
 };

 fuc(123);

 //方法对象使用
 var method = printInfo();
 method();
}

printInfo () {
 print("Hello OnexZgj");
}

五、闭包

void main() {
  var method=a();
  method();
  method();
  method();
}

a() {
  var count = 0;
//  printInfo() {
//    print(count++);
//  }
//  return printInfo;

    return (){
      print(count++);
    };
}

练习代码

void main() {
  int a = 10;
  double b = 12.5;

  print("hello world OnexZgj");

  //num 常用函数
  double c = 10.5;
  print(c.floor()); //不大于本身的最大整数  10

  print(c.ceil()); //大于本身的最小整数  11
  print(c.abs()); // 绝对值 10.5
  print(c.round()); //四舍五入 11

  print(c.toInt()); // 10
  print(c.toDouble()); // 10.5

  //字符串常见方法
  String str = "hello";
  print(str * 2); //hellohello
  print(str[1]); //e

  //插值表达式
  int e = 5;
  int f = 8;
  print("e+f = ${e + f}"); //e+f = 13
  print("e= $e"); //e= 5

  //布尔类型
  bool F = true;
  bool D = false;
  print(F);

  //创建数组
  var list = [1, 2, 3];
  var list2 = const [1, 2, 4, 6];
  var list3 = new List();
  list.forEach(print);

  //创建Map

  var map = {"name": "onexzgj", "sex": "man"};
  print(map);  //{name: onexzgj, sex: man}

  //常量map
  var map1 = const {"age ": 23, "isStudent": true};
  print(map1);  //{age : 23, isStudent: true}

  //list转为map的操作
  var map2 = list.asMap();
  print(map2); //{0: 1, 1: 2, 2: 3}


  //  ??= 运算符的含义,如果有初始值,则使用,没有值,则进行赋值
  int r=10;
  int v;
  v ??=r;
  print(v);   // 10

  v=90;
  v ??=r;
  print(v);  //90


  // ?? 条件表达式
  String sss;
  String str2="dart";
  String ss=sss??str2;
  print(ss);   //dart


  for(var index=0;index<list.length;index++){
    print(list[index]);
  }

  //for... in...
  for(var item in list){
    print(item);
  }


  String language= "sss";
  switch(language) {
    case "java":
      print("java is my favorite!");
      break;
    case "dart":
      print("dart is my favorite!");
      break;

  }

  getPerson("OnexZgj");
  getPerson("OnexZgj",age: 18);
  getPerson("OnexZgj",age: 18,male: true);

  getPerson2("Linsa");
  getPerson2("Linsa",17);
  getPerson2("Linsa",17,false);


}

//可选参数类型
getPerson(String name,{int age,bool male}){
  print("name= $name,age=$age,male=$male");
}


getPerson2(String name,[int age,bool male]){
  print("name= $name,age=$age,male=$male");
}

上一篇 下一篇

猜你喜欢

热点阅读