Dart 语言入门

引言

在学习Flutter之前,还是得先把基础打好,先来学习一下Dart的基础知识。

第一个dart 

import 'package:dart/dart.dart' as dart;

main(List<String> arguments) {
  print('Hello world: ${dart.calculate()}!');
}

变量与常量

1.变量

Dart是一个强大的脚本类语言,可以不预先定义变量类型,自动会类型推导(有点kotlin的味道),Dart中定义变量可以通过var关键字可以通过类型来申明变量,如:

    var str='this is var';

    String str='this is var';

    int str=123;

// 注意: var 后就不要写类型 ,  
//写了类型 不要var   两者都写   var  a int  = 5;  报错

2.常量(final 和 const修饰符)

const值不变,一开始就得赋值,

final可以开始不赋值,最后只能赋一次 ;

而final不仅有const的编译时常量的特性,最重要的它是运行时常量

并且final是惰性初始化,即在运行时第一次使用前才初始化.

永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。

    final name = 'Bob'; // Without a type annotation
    final String nickname = 'Bobby';
    const bar = 1000000; // Unit of pressure (dynes/cm2)
    const double atm = 1.01325 * bar; // Standard atmosphere


 

命名规则

  • 变量名称必须由数字、字母、下划线和美元符($)组成。
  • 注意:标识符开头不能是数字
  • 标识符不能是保留字和关键字。
  • 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。
  • 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词

数据类型

  •   Numbers(数值):

          int
          double

  •   Strings(字符串):

          String

  •   Booleans(布尔) :

          bool

  •    List(数组):

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

  •   Maps(字典):

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

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

数值类型数据

数值类型的数据比较好理解,就是int和double类型的数据等。

//1、int   必须是整型

    int a=123;

    a=45;

    print(a);


  //2、double  既可以是整型 也可是浮点型

    double b=23.5;

    b=24;

    print(b);

  //3、运算符

    // + - * / %
    
    var c=a+b;
    print(c);

字符串类型数据

var str1='this is str1';
var str2="this is str2";
String str3="""
    this is str1
    this is str2
    this is str3
    """;

布尔类型数据

bool类型的数据无非就是true或者false

//1、bool

        // bool flag1=true;

        // print(flag1);

        // bool flag2=false;

        // print(flag2);

  //2、条件判断语句

      var flag=true;
      if(flag){
        print('真');
      }else{
        print('假');
      }


      // var a=123;
      // var b='123';
      // if(a==b){
      //   print('a=b');
      // }else{
      //    print('a!=b');
      // }


      var a=123;

      var b=123;

      if(a==b){
        print('a=b');
      }else{
         print('a!=b');
      }

List(数组)类型数据

数组类型的数据就是将一众合数据组成一个数组,选择这个数组中某一个数据可以由数组的index值来选择。

var l1=['aaa','bbbb','cccc'];

      print(l1);

      print(l1.length);

      print(l1[1]);


//

var l2=new List();

    l2.add('张三');
    l2.add('李四');
    l2.add('王五');

    print(l2);
    print(l2[2]);


//如果我们需要让数组类型的数据中都由一种数据组成我们可以这样设置数组

var l3=new List<String>();

    l3.add('张三');

    // l3.add(123);//报错,因为数据类型不匹配

    print(l3);

Map类型数据

Map数据类型我们其实可以看成是一种对象类型数据,这个在我们开发实践中很常见,

所有的json数据都基本上会采用Map,我们可以把Map理解成一种Key/Value类的数据形式,

var person={
      "name":"张三",
      "age":20,
      "work":["程序员","送外卖"]
    };

    print(person);

    print(person["name"]);

    print(person["age"]);

    print(person["work"]);


//另一种方式
var p=new Map();

    p["name"]="李四";
    p["age"]=22;
    p["work"]=["程序员","送外卖"];
    print(p);

    print(p["age"]);

基本运算符

描述操作符
一元后置操作符expr++ expr-- () [] . ?.
一元前置操作符expr !expr ~expr ++expr --expr
乘除* / % ~/
加减+ -
位移<< >>
按位与&
按位或|
按位异或^
逻辑与&&
逻辑或||
关系和类型判断>= > <= < as is is!
== !=
如果为空??
条件表达式expr1 ? expr2 : expr3
赋值= *= /= ~/= %= += -= <<= >>= &= ^= = ??=

++和--

++和--是自增自减运算符,表示变量自动增加或者减少

 var a=10;
    var b=a--;
    print(a);  //9
    print(b);  //10

+=,-=

+=和-=是表示变量加上等号后面的值或者自己减少等号后面的值

    var c = 10;
    c+=10,
    print(c);//20

 

条件表达式

if...else

if中书写条件语句,else则是非if中条件的执行block

三目运算符

三目运算符其实原理跟if..else如出一辙,只是判断简化了不少

  bool flag=false;
  String c=flag?'我是true':'我是false';
  print(c);

??运算符

意思是说假如果有a和b两个变量,要把a的值给b,如果a有值则直接将a的值给b,如果a没有值就用??后面的值去取代a的值赋给b

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

//输出: 10

do..while

do..while中do表示条件控制,while里表示循环内容

语法格式:
        
        while(表达式/循环条件){            
            
        }   
        
            
        do{
            语句/循环体
            
        }while(表达式/循环条件);

tips:

1、最后的分号不要忘记
2、循环条件中使用的变量需要经过初始化
3、循环体中,应有结束循环的条件,否则会造成死循环。

for循环

 不想说了:

for (int i = 1; i<=100; i++) {   
        print(i);
    }
    
            //第一步,声明变量int i = 1;
            //第二步,判断i <=100
            //第三步,print(i);
            //第四步,i++
            //第五步 从第二步再来,直到判断为false

List,Set,Map

List

List就是数组类型,数组表示众多数据集合在一个数组类型中,换言之我们用一个[]来表示这些数据:

List fruitList=['香蕉','苹果','西瓜'];
//又或者
List numList=[1,2,3];

在Dart中内置了很多对List操作的方法:

属性:

名称含义
length长度
reversed翻转
isEmpty是否为空
isNotEmpty是否不为空

 

方法:

方法名含义
remove删除
removeAt删除,传入索引值
add增加
addAll拼接数组
indexOf查找,传入具体值
fillRange修改
Insert(index,value)指定位置插入
insertAll(index,list)指定位置插入List
toList()其他类型转换成List
Join()List转换成字符串
Split()字符串转化成List
forEach遍历所有数组
map映射数组

Set

Set就是集合类型,在Set中我们保证每个元素都是不相同不重复的

在许多语言中,Set可以用来区别数据唯一性的选择类型,Dart语言也不例外。

 var s=new Set();
 s.add('香蕉');
 s.add('苹果');
 s.add('苹果');
 print(s);   //{香蕉, 苹果}
 print(s.toList()); //set转为List

可以用Set来对List进行去重操作

Map

key和value解释数据

结束。

 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值