dart的基本语法(一)

Hello world

​ 安装dart的环境就不赘述了,无脑安装就可以了,安装过程中好像需要梯子(vpn),我装的时候失败好多次,我的梯子不能用了,准备不装了的时候,莫名其妙的装好了。迷の操作。惯例,一门新的语言必须要传统一下。

main(){
  print("hello world");
}

直接就输出了 “hello world”,没有那么多繁杂的语法。

变量类型

定义变量

main(){
  var age=24; // 使用var来定义变量,会自动的识别类型
  int Age=24; // 直接使用int来定义也可以
  age="25"; // (报错)类型检验自动识别类型以后,第一次什么类型之后就是什么类型了
  print(age);
}

定义常量

main(){
  // 赋值一次后就不能改变了,称之为常量,(感觉我说的就是废话)
  final age=23;
  const Age=25;
  print(Age);
  print(age);
}

final与const的区别:final 可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化。

main(){
  final time=new DateTime.now();
  const Time=new DateTime.now(); // 报错
  print(time);
}

字符拼接

main(){
  String name="kign";
  String age= "23";
  print(name +":"+ age);
  print("${name}+:+${age}");
}

list的定义

main() {
  List l1 = ["aaa", "bbb", "ccc"];
  print(l1[1]);
  List l2 = [
    {'age': 12},
    {"age": 34}
  ];
  print(l2[0]["age"]);
  var l3 = new List<String>();
  l3.add("value");
  l3.add("page");
  print(l3[1]);
}

Map的定义

main() {
 Map m1={"name":"张三","age":24,"work":["程序员","外卖员"]};
 print(m1["work"]);
 var p=new Map();
 p["name"]="李四";
 p["age"]=23;
 p["work"]=["程序员","外卖员"];
 print(p["age"]);
}

类型判断

main() {
  var age = 25;
  if (age is int) { // is关键字
    print("int类型数据");
  } else {
    print("其它类型数据");
  }
}

??运算符

​ 判断当前是否为空,为空则为??后的值,不为空则为当前赋值的值

main() {
  var a;
  var b = a ?? 10;
  print(b);

  var c = 22;
  var d = c ?? 10;
  print(d);
}

输出:

10
22

??=运算符

​ 判断当前变量是否为空,为空则将运算符后的数值赋值给当变量

main() {
  var a;
  a??=23;
  print(a);
    
  var b=10;
  b??=23;
  print(b);
}

输出:

23
10

类型转换

main() {
  var a="12"; 
  var b=double.parse(a);
  print(b);

  var c="13";
  print(c.toString());
}

集合循环

list

List myList=['香蕉','苹果','西瓜'];
// 最普通的循环
for(var i=0;i<myList.length;i++){
    print(myList[i]);
}
// forEach 
for(var item in myList){
    print(item);
}
// forEach 
myList.forEach((value){
    print("$value");
});
// A数组扩大二倍赋值给B数组
List myList=[1,3,4];
List newList=new List();
for(var i=0;i<myList.length;i++){
    newList.add(myList[i]*2);
}
print(newList);
// A数组扩大二倍给B数组
List myList=[1,3,4];      
var newList=myList.map((value){
    return value*2;
});
print(newList.toList());

list内容的判断

// 一
List myList=[1,3,4,5,7,8,9];
var newList=myList.where((value){ // 将数组中大于5的给予一个新数组
    return value>5;
});
print(newList.toList());
// 二
List myList=[1,3,4,5,7,8,9];
var f=myList.any((value){   //只要集合里面有满足条件的就返回true
    return value>5;
});
print(f);
// 三
 List myList=[1,3,4,5,7,8,9];
 var f=myList.every((value){   //每一个都满足条件返回true否则返回false
     return value>5;
 });
 print(f);

Set的循环

main() {
   var s=new Set();
   s.addAll([1,222,333]);
   s.forEach((value)=>print(value));
}

Map的循环

main() {
  Map person={
    "name":"张三",
    "age":20
  };
  person.forEach((key,value){
    print("$key---$value");
  });
}
posted @ 2019-08-13 18:34  kingstoness  阅读(903)  评论(0编辑  收藏  举报