Dart语言入门

一、数据类型

基本数据类型

  • int
  • double
  • String 字符串类型,用单引号或者双引号都可以。
  • bool 布尔类型,需要注意的是dart不同于c语言可以再if语句中用int型代替bool类型。
    列表
  • List 列表支持随机访问,类似于java的数组
  //直接定义
  var list =[];
  
  //用泛型显示声明一个集合
  List<int> list=[1,2,3,4,5];
  list.add(7);
  print(list[2]);
  
  //创建一个固定长度的集合
  List<String> lsit=List.filled(2,"");

 //List当中的常见方法
   List list = ['苹果','桃子','猴子'];
  print(list.length); //输出长度
  print(list.reversed); //反转数组
  print(list.isEmpty); //判断是否为空
  print(list.isEmpty); //判断是否为空
   list.add("西瓜");//添加元素
   //list.addAll(新数组);//合并数组
   list.indexOf('西瓜');//查找某个元素
   list.remove('西瓜');//删除某个元素  传入具体值
   list.removeAt(2);//删除某个元素  传入下标
   list.fillRange(0, 1,'aaa');//修改元素 前闭后开
   list.insert(0, '你好');//插入元素,参数为下标和对象
   list.join(',');//把List转为字符串,并且用,链接
  • Set Set集合当中的元素是不重复并且无序的,不支持随机访问,具有更好的查找性能。
  //用泛型显示声明一个集合
  Set<String> set={'dart','flutter'};
  set.add("value");
  print((set.length==3));
  
  //如果用var声明一个空集合,那我们必须显示的声明泛型
  var set = <int>{}; //或者Set<String> set={};
  • Map 类似于java。这里的Map也是一个键值对结构,键和值用冒号隔开,如果用var声明一个空Map那么会吧{}推导为默认类型,如果想要声明一个Set,那必须在前面加上泛型。
  //map直接赋值 
  Map<String,String> map={'dart':'flutter','map':'映射'};
  
  //声明为空的map
  var map={};
  
  //先初始化再赋值
  Map map1 = Map<String,String>();
  map1['你好']='ligou';
  //如果没有定义泛型的话可以这样定义 map1['好']=['我是1','我是2'];
  print(map1['你好']);

//Map常用属性和方法
  Map map = {'你好':'李哥'};
  map.keys;//输出所有的key
  map.values;//输出所有的values
  map.isEmpty;//判断是否为空
  //map.addAll(map名称)//拼接字典
   map.containsKey('你好');//是否存在某个k
   map.remove('你好');//删除某个k
   map['哈哈']='呵呵';//添加元素
  • is 关键字来判断类型
  var a = 123;
  if(a is int){
     print('yes');
  }

二、逻辑控制

1.if语句

  • 和java没有什么区别
  if(a>b){
    print(a);
  }else{
    print(b);
  }

2.for语句

  • 第一种写法和java的for循环一样
  //入门级别用法
  for(int i = 0; i <5;i++){
    print(i); //1 2 3 4 5
  }
  
   //集合套map
   List list = [{'title':'董瑞龙'},{'title':'李狗'},{'title':'马狗'},];
   for(int i = 0; i<list.length;i++ ){
     print(list[i]['title']);   //董瑞龙  李狗  马狗
   }
   
//类似二维数组的嵌套
  List list2 =[
     {
       'creat':'国内',
       'news':[
          {'title':'中国第一线'},
          {'title':'中国第二线'}
       ]
     },
     {
        'creat':'国外',
         'news':[
           {'title':'国外第一线'},
           {'title':'国外第二线'}
         ]
     }
   ];
   for(int i = 0 ;i<list2.length;i++){
     //print(list2[i]['creat']);
     for(int j = 0;j<list2[i]["news"].length;j++){
          print(list2[i]['news'][j]['title']);  //中国第一线 中国第二线  国外第一线 国外第二线
     }
   }
  • 第二种写法和js当中的for in类似
  List list = [1,2,3,4,5];
  for(int a in list){
    print(a); // 1 2 3 4 5
  }

3.while语句

  • 用法和java类似
  int a = 5;
  while(a>0){
    print(a); // 5 4 3 2 1 
    a--; 
  }
  • 用一下continue和break。
  List<int> list = [1,2,3,4,5];
  for(int a  in list){
    if(a<2){
      continue;
    }
    if(a==4){
      break;
    }
    print(a); // 2 3
  }

4.其他循环控制语句

  • forEach
  List list=['你好','哈哈'];
  list.forEach((value) {
    print(value); //你好 哈哈
  });
  • map
  List list=[1,2];
  var newlist=list.map((value) {
    return value*2;
  });
  print(newlist.toList()); //[2,4]
  • where
  //输出满足条件的语句
  List list=[1,2,5,9,7];
  var newlist=list.where((element) => element>2);
  print(newlist.toList());//[5,9,7]
  • any
  // 判断是否有满足条件的值,返回值为布尔类型
  List list=[1,2,5,9,7];
  var newlist=list.any((element) => element>2);
  print(newlist); //true
  • every
  // 集合内的元素是否都满足条件,返回值为布尔类型
  List list=[1,2,5,9,7];
  var newlist=list.any((element) => element>2);
  print(newlist); //false

三、方法

  • 普通函数就不多做讲解了,和java一样的。下面介绍几种java当中没有的函数
  • 定义一个带可选参数的方法
//这里定义了一个可选参数的函数,中括号当中的参数是可选的
void main(){
  print(userInfo('董瑞龙',20,'女')); 
}
String userInfo(String name,[var age,var sex]){
    if(age!=null) {
      return "年龄:$age ---性别:$sex";
  }
    return " 年龄:$age";
}
  • 定义一个带默认参数的方法
//这里直接在参数后面加上等于号赋值就可以创建一个带有默认参数的方法。
void main(){
  print(userInfo('董瑞龙',20));
}
String userInfo(String name,[var age,var sex="女"]){
  if(age!=null) {
    return "年龄:$age ---性别:$sex";
  }
  return " 年龄:$age";
}

四、面向对象编程

1.类和对象

  • Dart类的创建和使用与Java是非常相似的,写个例子就不多做介绍了。
//创建了一个people类
class Peopel{
    String name = '张三';
    int age = 10 ;
    String getInfo(){
      return 'name=${this.name} -- age=${this.age}';
    }
}

void main(){
  Peopel p = new Peopel();
  print(p.name);
  print(p.getInfo());
}
  • 继承(和java一样,关键字为extends)
class Animal{
  void walk(){
    print("正在走");
  }
}
class Cat extends Animal{
  
  void walk(){
    super.walk();
    print("cat is running");
  }
}

  • 抽象类(抽象类需要用abstract来声明,当子类继承抽象类之后必须重写抽象类当中的所有抽象方法)
abstract class Animal{
  void walk(){
  }
}
class Cat extends Animal{
  
  void walk(){
    super.walk();
    print("cat is running");
  }
}
  • 接口 Dart的接口和Java是有一定区别的,首先在定义上Dart的接口没有interface关键字定义接口,而是普通类或抽象类都可以作为接口被实现。实现的关键字都是implement。

五、一些新特性

  • ?可空类型
  //首先来看下这段代码,这段代码是会报The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.错误的
  int a =10;
  a=null;

 //如果加入?符号就表示可以为空,这样就不会报错了
   int ?a =10;
   a=null;
  • ! 类型断言
  String ?str="da";
  str=null;
  print(str!.length);
`**加粗样式**``

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Dart学徒:使用Dart进行初级编程PDF》是一本介绍使用Dart语言进行编程的入门书籍。这本书的目标是帮助读者了解和掌握Dart编程语言的基础知识,以便能够开始进行Dart编程。 本书首先简要介绍了Dart编程语言的背景和特点。Dart是一种由Google开发的面向对象的编程语言,旨在用于Web开发。它具有类似于Java和JavaScript的语法,但有一些自己独特的特性,如强类型检查和异步编程支持。 接下来,本书逐步引导读者学习Dart编程的基础知识。它涵盖了变量、数据类型、运算符、控制流程等基本概念。读者将学会如何声明变量、使用不同的数据类型以及如何使用条件语句和循环来控制程序的流程。 本书还介绍了函数和类的概念,并展示了如何定义和使用它们来组织代码和实现复杂的功能。这包括创建自定义函数、编写类和对象、继承和多态等内容。通过掌握这些概念,读者将能够编写更加复杂和结构化的程序。 除了基本的语法和概念,本书还涵盖了一些高级主题,如异常处理、文件操作、网络编程等。这些内容将帮助读者进一步扩展他们的Dart编程技巧,并使他们能够解决真实世界中的实际问题。 综上所述,《Dart学徒:使用Dart进行初级编程PDF》是一本适合初学者的Dart编程入门教材。它通过简洁易懂的语言和丰富的示例,帮助读者快速上手并建立起对Dart编程的基本理解与实践能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3 ERROR(s)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值