Flutter开发中Dart语言的使用(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/smxueer/article/details/82347909

由于本人做的是Android开发,用的是Java语言,故此接下来我会在Java和dart两种语言做个对比,在熟悉的代码中学习新的语言。学习dart语言使我想起刚学习Java的时候,基本是按照基本语法、数据类型、属性、函数、操作符和流程控制语句、接口和反射、IO文件操作,接下来我们在学习dart语言时同样按照这样的顺序。

1、基本语法

首先我们来看项目中

dart语言项目

 

Java项目

从以上可以看出,基本的项目结构类似。但是dart项目比Java要多几个系统文件;最根本的区别还是相关类文件的后缀是不一样的。很多的不同在以下介绍;

2、dart语言中的数据类型

在学习Java时有8中基本数据类型如byte、short、int、boolean、float、double、chart;dart语言中支持的数据类型有Numbers、Strings、List、Booleans、Maps。接下来我们就来看看dart数据类型的使用:

1)、数字类型和boolean类型

print('Hello, World!');

  //数字的使用

  var number = 45;

  print(number);

  printNumber(56);

2)、类似于Java中boolean类型的使用

  var t=true;

  print(t);

  final  booleans isshow=false;

  print(isshow);

printNumber(number number) {

print('the number is $number');

}

运行结果如下:

dart中数字和boolean类型的使用

3)、dart中字符串的使用

/*Dart 语言本质上是动态类型语言,类型是可选的

可以使用 var 声明变量,也可以使用类型来声明变量

一个变量也可以被赋予不同类型的对象

但大多数情况,我们不会去改变一个变量的类型

字符串赋值的时候,可以使用单引号,也可以使用双引号

Dart 语言本质上是动态类型语言,类型是可选的

可以使用 var 声明变量,也可以使用类型来声明变量

一个变量也可以被赋予不同类型的对象

但大多数情况,我们不会去改变一个变量的类型*/

  String name ='杨烁';

  print(name);

  String name2 ="欧阳";

  print(name2);

  //如果使用的是双引号,可以内嵌单引号

//当然,如果使用的是单引号,可以内嵌双引号,否则需要“\”转义

  var content="it's dart ";

  var contetn1='it\'s dart';

  print("content:="+content+"contetn1:="+contetn1);

//  使用三个单引号或者双引号可以多行字符串赋值

  String str="""dart is my enjoy

  realy enjoy""";

  String str2='''this is string demo''';

  print("con:="+str+"str2:=="+str2);

运行结果如下:

字符串在使用中出现一个问题就是如果多个字符串相邻,中间的字符串不能为空,否则报错

var name ='Wang''''Jianfei'; 报错

在编辑器中是不通过的报错如下:

 

4)、dart语言中List(列表)、Map(映射)、Set(集)三种集合类型

  • dart语言中list集合的使用---固定长度的写法,一旦确定无法改变list的长度
  • List<int> lists = new List(5);
    lists[0] = 3; //这中写法有点像java数组赋值的写法
    print(lists);
    print(lists[0]);
  • 改变长度的写法List<String> names = new List<String>();或者List<int> lists2 = [1, 2];这两种写法都是可以的
  • 第三种创建在一定范围内可以改变长度的列表List changeList = new List()..length = 20;
  • 其他不同情况下的灵活使用
    List fixList = new List.unmodifiable([2, 4, 7]);
    print(fixList);
    // 创建包含所有元素的可改变长度列表
    List changeList2 = new List.from([7, 9, 4]);
    print(changeList2.length);
    // 为所有元素统一赋值,第二个参数代表list集合中的填充元素
    List fillList = new List.filled(4, 0);
    print(fillList);
    List fillList2 = new List.filled(3, [0, 3, 5]);
    print(fillList2);
    //显示元素的值便是index*index
    List generList = new List<int>.generate(6, (int index) {
      return index * index;
    });
  • dart语言中list集合相关属性的使用
    print(generList.first); //获取list集合的首个元素
      print(generList.last); //获取list集合的最后一个元素
      print(generList.reversed); //获取list集合元素反转后的集合
      print(generList.hashCode); //获取list集合的哈希码
      print(generList.isEmpty); //判断list集合是否为null
      print(generList.isNotEmpty); //判断list集合是否为null的第二个属性
      print(generList
          .iterator); //返回一个新的迭代器,但是如果实例化不是ListIterator<int>会给出Instance of 'ListIterator<int>'的提示
      print(generList.runtimeType); //返回list集合运行时的类型
    //  print(generList.single);//判断list集合是否只有一个元素,否则就会报错
    //  print(generList.removeLast()); //去除list集合的最后一个元素
    //  print(generList);
      print(generList.insert(4, 34)); //给list集合的指定位置添加某一元素,位置必须在list元素的位置内
      print(generList.asMap()); //将list集合转换成smap集合
      print(generList);
      print(generList.toSet()); //江苏list集合转换成set集合
      print(generList);
    //  print(generList.getRange(2, 6));//获取list集合中某一范围内的新集合
    //print(generList.removeRange(3, 4));//删除list集合中某一范围内的数据
      print(generList.replaceRange(1, 3, [9, 45, 256])); //替换某一范围的元素
      print(generList);
      List<int> newNums = [1, 3, 2, 5, 6, 7, 8, 9];
    
    //  dart语言中函数的简易写法 newNums.removeWhere((item)=>item%3==0);
      newNums.retainWhere((item) => item % 2 == 0); //一处集合中不满足集合条件的元素
      print(newNums);
    //  print(generList.clear());//删除list集合中的元素
      //按顺序迭代列表
      newNums.forEach((item) {
        print(item);
      });
      generList.sort(); //对list集合按顺序排序
      print(generList);
      generList.shuffle(); //对list集合随机排序
      print(generList);
    以上是dart语言list集合的简单使用,更多用法可以自查源码
  • dart语言中map的使用和相关的属性  
    Map<String, String> maps = {"name": "杨建", "age": "24", "gender": "女"};
      List<int> numLists = [45, 89, 124];
    //以下用到速写语法
      Map<String, int> numMaps = new Map.fromIterable(numLists,
          key: (item) => item.toString(), value: (item) => item * item);
      print(numLists);
      print(numMaps);
      print(numMaps['89'] + numMaps['45']);
      print(numMaps['45'] - numMaps['124']);
      List<String> keys = ['a', 'b', 'c', 'd'];
      List<String> values = ['asd', '345', 'dfdf', 'flgk'];
      Map<String, String> mapContents = new Map.fromIterables(keys, values);
      print(mapContents);
      print(mapContents['a'] + mapContents['c']);
    //dart中map集合涉及到的相关属性如下
      Map<String, String> studentInfo = {'name': '杨毅', 'age': '15', 'gender': '女'};
      print(studentInfo.keys); //返回map集合中所有的key值
      print(studentInfo.values); //返回map集合中所有的value值
      print(studentInfo.isEmpty); //也可以使用isNotEmpty判断是否为null
      print(studentInfo.containsKey("age"));
      print(studentInfo.hashCode);
      print(studentInfo.runtimeType);
      print(studentInfo.hashCode);
      print(studentInfo.toString());
      studentInfo.forEach((key, value) {
        print(key + ";" + value.toUpperCase());
      });
      Map<String, int> scores = {'B': 36};
      for (var key in ['B', 'r', 't']) {
        // 查找指定键,如果不存在就添加
        scores.putIfAbsent(key, () => key.length);
      }
      print(scores);
  • dart语言中set的属性和使用和list和map是有很多相似的地方的,以下简单列举
    //set集合的对象只能出现一次,不能重复
      Set nameSets = new Set.from(['欧阳', '杨素', '绮丽']);
    
      nameSets.add('王继英');
      print(nameSets);
      print(nameSets.first);
      print(nameSets.last);
    //  print(nameSets.single);//如果是单独一个元素,则返回,否则就报错
      print(nameSets.addAll(['欧阳鱼翅','上官家族']));
      print(nameSets);
    以上以供参考

 

 

展开阅读全文

没有更多推荐了,返回首页