Dart基础学习总结(上)

本文是Dart编程的基础学习总结,涵盖了Dart语言介绍、环境搭建、开发工具、第一行代码、注释、变量、常量、命名规则、数据类型、运算符等内容,适合初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

学习语言的第一课Dart介绍:

Dart环境搭建: 

Dart 开发工具:

第一行Dart代码:

Dart中的注释

Dart 变量:

Dart 常量:

Dart的命名规则:

Dart中支持的数据类型:

Dart运算符:

   条件表达式    if  else   switch case

三目运算符

 ??运算符:

 类型转换

 Dart中的自增自减操作

 Dart中的循环语句及其简单应用


学习语言的第一课Dart介绍:

Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。要学Flutter的话我们必须首先得会Dart。

官网:https://dart.dev/

Dart环境搭建: 

要在我们本地开发Dart程序的话首先需要安装Dart Sdk,。如果你只是想开发移动应用,则不需要使用 Dart SDK,只需 安装 Flutter 即可

Dart官方文档:https://dart.dev/get-dart

windows(推荐): http://www.gekorm.com/dart-windows/

Dart 开发工具:

    Dart的开发工具有很多: IntelliJ IDEA  、 WebStorm、 Atom、Vscode等

第一行Dart代码:

main(){
  print('Hello dart');
  print('Hello dart1');
}

main()是Dart的入口方法,所有要执行的东西都要放在里面;

如果一个方法里只有一行代码,可以简写为:

main()=> print('Hello dart');

Dart中的注释

dart中有三种常见注释

示例:

1.单行注释:

单行注释以//开头, Dart编译器会忽略//和行尾之间的所有内容

//print('Hello dart')

2.多行注释

多行注释以 /* 开头,以 */ 结尾

/*
print('Hello dart1')
print('Hello dart')
*/

3.文档注释

文档注释是以 ///或 /** 开头的多行或单行注释, 在连续行上使用 /// 与多行文档注释具有相同的效果。可以通过dartdoc命令导出文档。

  /// Say something to dart
  /// The string [what] is what you want to say.
  sayWhat(String what) {
    /*
    * Say something
    * */
    print(what);
  }

Dart 变量:

  dart是一个强大的脚本类语言,可以不预先定义变量类型 ,会自动类型判断

  dart中定义变量可以通过var关键字可以通过类型来申明变量

  如:

    var str='this is str';

    String str='this is str';

    int str=123;

  注意: var 后就不要写类型 ,  写了类型 不要var   两者都写 如:

var  int  a = 5; 或

var   a =" ";

a = 123; 就会报错

Dart 常量:

即不可修改的参数,使用final 和 const修饰符均可声明常量,两者区别如下:

const值不变 一开始就得赋值

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

如:

 final a=new DateTime.now();

    print(a);   //2020-04-16 15:59:02.894372

若使用const:

const a=new DateTime.now();   //报错了 

Dart的命名规则:

          1、变量名称必须由数字、字母、下划线和美元符($)组成。

          2.注意:标识符开头不能是数字

          3.标识符不能是保留字和关键字。  

          4.变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。

          5、标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词  

示例代码:

void main(){

    var str1='2134214';

    //var 2str='xxx';   //错误

    // var if='124214';  //错误

    //注意变量的名字是区分大小写的

    var age=20;

    var Age=30;

    print(age);//输出20

    print(Age);//输出30

}

Dart中支持的数据类型:

点击跳转数据类型详解

  常用数据类型:

      Numbers(数值):int,double

      Strings(字符串):String

      Booleans(布尔): bool

      List(数组)

          在Dart中,数组是列表对象,所以大多数人只是称它们为列表

      Maps(字典)

          通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次

     Set

          用它最主要的功能就是去除数组重复内容,Set是没有顺序且不能重复的集合,所以不能通过索引去获取值.

        

  项目中不常用的数据类型 (用不到):

      Runes

        Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。

示例代码:

  main() {

          var clapping = '\u{1f44f}';

          print(clapping);

          print(clapping.codeUnits);

          print(clapping.runes.toList());

          Runes input = new Runes(

              '\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');

          print(new String.fromCharCodes(input));

        }

      Symbols

        Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:在 Dart 中符号用 # 开头来表示,入门阶段不需要了解这东西,可能永远也用不上。有兴趣的同学可以自行查看相关文档。

Dart运算符:

  Dart中的运算符和其他语言中的基本一致,就不一一举例了,有几个特殊的,强调一下:

   算术运算符   +    -    *    /     ~/ (取整)     %(取余)

   关系运算符 ==    !=   >    <    >=    <=

   逻辑运算符    !  &&   ||

   赋值运算符:

   基础赋值运算符   =   ??=(若为0,则赋值)

示例代码:

     int a=10;
     int b=3;
     print(a);
     int c=a+b;   //从右向左赋值

   //c??=23;  表示如果b为空的话把 23赋值给b
     int c=6;
     c??=23;
     print(c);//输出结果:6

     int d;
     d??=23;
     print(d);//输出结果:23

   复合赋值运算符   +=  -=  *=   /=   %=  ~/=

示例代码:

   var a=12;
   a=a+10;
   print(a);//输出结果:22
   var b=13;
   b+=10;   //表示b=b+10
   print(b);//输出结果:23

   var c=4;
   c*=3;  //c=c*3;
   print(c);//输出结果:12

   条件表达式    if  else   switch case

 if  else 中,多个条件判断可以有else if 链接:

  //判断一个人的成绩 如果大于60 显示及格   如果大于 70显示良好  如果大于90显示优秀
   var score=56;
   if(score>90){
     print('优秀');
   }else if(score>70){
      print('良好');
   }else if(score>=60){
     print('及格');
   }else{
     print('不及格');
   }
    //输出结果:不及格

  switch case中,每一个case都需要一个break关键字来结束,否则会继续向下执行.所有case条件都未满足的话,就会执行default关键字里的内容

   var sex="女";
   switch(sex){
     case "男":
       print('性别是男');
       break;
     case "女":
       print('性别是女');
       break;
     default:
       print('传入参数错误');
       break;
   }

三目运算符

可以看做是if ...else的简写

var falg=true;
var c;
if(falg){
 c='我是true';
 }else{
 c="我是false";
 }
print(c);
//可以简化为:
bool flag=false;
String c=flag?'我是true':'我是false';
print(c);

 ??运算符:

//若a未空,则把后面的10赋值给b,若a不为空则把a的值赋值给b
var a;
var b= a ?? 10;
print(b);  //输出结果:10
//
var a=22;
var b= a ?? 10;
print(b);//输出结果:22

 类型转换

    1、Number与String类型之间的转换

示例代码:

      // Number类型转换成String类型 toString()
      // String类型转成Number类型  int.parse()

       String str='123';
       var myNum=int.parse(str);
       print(myNum is int);//输出结果:true

       String str='123.1';
       var myNum=double.parse(str);
       print(myNum is double);//输出结果:true

       String price='12';
       var myNum=double.parse(price);
       print(myNum);//输出结果:12.0
       print(myNum is double);//输出结果:true

       var myNum=12;
       var str=myNum.toString();
       print(str is String);//输出结果:true

类型转化的时候,注意非空的判断,否则会报错,在使用的时候,也可以用try catch 捕获异常,防止程序闪退,例如:

报错代码:
      String price='';
   
  var myNum=double.parse(price);
      print(myNum);
      print(myNum is double);

使用try ...catch后正常输出:

    // try  ... catch
     String price='';
       try{
         var myNum=double.parse(price);
        print(myNum);
      }catch(err){
            print(0);
       } 
       //输出结果:0

    2、其他类型转换成Booleans类型

示例代码:

     // isEmpty:判断字符串是否为空
         var str='';
         if(str.isEmpty){
           print('str空');
         }else{
           print('str不为空');
         }
         //输出结果:str空

 注意:isEmpty和null还是不一样的,例如:

  var str=''";

print(str.isEmpty);//输出结果:true

print(str==null);//输出结果:false

若没有给str初始化,则在调用isEmpty方法时会报错

        var myNum;
        if(myNum==0){
           print('0');
         }else{
           print('非0');
        }
       //输出结果:非0
         var myNum;
         if(myNum==null){
            print('空');
         }else{
           print('非空');
         }
        //输出结果:空

数值型的变量,可以调用isNan方法,来判断是否为Nan值:

        var myNum=0/0;
        print(myNum);//输出结果:Nan
        print(myNum.isNaN);//输出结果:true

 Dart中的自增自减操作

   ++  --   表示自增 自减 1, 在赋值运算里面 如果++ -- 写在前面 这时候先运算 再赋值,如果++ --写在后面 先赋值后运行运算.

示例代码:

     var a=10;
     a++;   //a=a+1;
     print(a);//输出结果:11

     var a=10;
     a--;    //a=a-1;
     print(a);//输出结果:9

//----- --在前和在后的区别
     var a=10;
     var b=a--;
     print(a);  //输出结果:9
     print(b);  //输出结果:10

     var a=10;
     var b=--a;
     print(a);  //输出结果:9
     print(b);  //输出结果:9

 Dart中的循环语句及其简单应用

dart中的循环语句和其他语言基本一致,常见的有三种,for循环,while 循环,do...while循环,下面分别距离说明

1.for循环语法:

for (int i = 1; i<=100; i++) {   
            print(i);
          }

 2.for循环运行次序分析:

    第一步,声明变量int i = 1;

    第二步,判断i <=100

    第三步,print(i);

    第四步,i++

    第五步 从第二步再来,直到判断为false

例如:计算5的阶乘   (1*2*3*4*5    n的阶乘1*2……*n)

     var sum=1;
     for(var i=1;i<=5;i++){
         sum*=i;
     }
     print(sum);   

   循环顺序:

   第一次:sum=1*1;

   第二次:sum=1*1*2;

   第三次: sum=1*1*3;

   第四次: sum=1*1*3*4*5;

3.while,do...while循环:

语法格式

        while(表达式/循环条件){       

        }

  ---------------------------------------       

        do{

           语句/循环体

        }while(表达式/循环条件);      

        注意:1、最后的分号不要忘记

                2、循环条件中使用的变量需要经过初始化

                3、循环体中,应有结束循环的条件,否则会造成死循环。

例如求1~100的和:

//while循环写法  
     int i=1;
     var sum=0;
     while(i<=100){
        sum+=i;
        i++;
     }
     print(sum);

//do...while 写法
     int i=1;
     var sum=0;
     do{
        sum+=i;
        i++;
     }while(i<=100);
     print(sum);

4.while 和 do while的区别: 

 第一次循环条件不成立的情况下,while不会执行循环体里的代码,但是do...while会先执行一次循环体中的方法.

5.break和continue的使用方法及其区别

        break语句功能:

          1、在switch语句中使流程跳出switch结构。

          2、在循环语句中使流程跳出当前循环,遇到break 循环终止,后面代码也不会执行

          强调:

          1、如果在循环中已经执行了break语句,就不会执行循环体中位于break后的语句。

          2、在多层循环中,一个break语句只能向外跳出一层

        break可以用在switch case中 也可以用在 for 循环和 while循环中

      continue语句的功能:

        【注】只能在循环语句中使用,使本次循环结束,即跳过循环体重下面尚未执行的语句,接着进行下次的是否执行循环的判断。

     continue可以用在for循环以及 while循环中,但是不建议用在while循环中,不小心容易死循环

示例代码:

//如果i等于4的话跳过
     for(var i=1;i<=10;i++){
       if(i==4){
         continue;  /*跳过当前循环体 然后循环还会继续执行*/
       }
       print(i);
     }
  
//输出结果:1,2,3,5,6,7,8,9,10

//如果 i等于4的话跳出循环
     for(var i=1;i<=10;i++){
       if(i==4){
         break;  /*跳出循环体*/
       }
       print(i);
     }
//输出结果:1,2,3

多层循环的时候:

  //break语句只能向外跳出一层
    	  for(var i=0;i<3;i++){
	     print('外层---$i');
           for(var j=0;j<3;j++){	
             if(j==1){
               break;
             }
             print('里层$j');		 	
           }	
			  }

输出结果:

外层---0

里层0

外层---1

里层0

外层---2

里层0

每次内层循环运行到1的时候就会跳出循环,但是外层会继续执行

 

下一篇:Dart基础学习总结(中)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值