Flutter的基础篇------------Dart介绍

 前言

  1. Dart语言是一个真正面向对象的语言,宗旨是一切皆对象,Object是一切类的基类,Object声明的类型可以是任意类型(在Dart语言连方法,数字和"null"都是对象,数字包括int),如果值没有初始化,默认值为null
  2. Dart语言也拥有头部函数,形式为void main(){}格式,(如果知道JAVA的话,这个就相当Java的public static void main(Sting[] args){})
  3. 对于作用域,和JAVA不同的是,Dart语言没有public protected private等关键字,在Dart语言中没有这些关键字,当方法名或变量以"_"开头,表明此方法或变量是私有的

基础类型

  var和dynamic

  • var :  由于Dart语言是一种弱语言类型,所以类型可以用var关键字表示,var在声明的变量赋值的那一刻,就决定了他是什么类型,例如var i = "zhanglu" ------------确定这个类型为String,而声明一个没有初始化的类型例如 var j; 那么他的类型是Object类型
  • dynamic:不是在编译时候确定实际类型的, 而是在运行时。dynamic声明的变量行为与Object一样,使用一样,所以在编译期可以随时修改他的值,关键在于运行时原理不同。比较影响性能

   final ,const的区别

    final与const从使用上根本看不出区别,但是final是运行时常量-------运行时确定,而const是编译器常量-------编译时确定,它的值在编译期就可以确定,编译时常量能够让代码运行的更高效.例如:

   const i = 2; final j = i ; //正确 const的时间节点在final之前

   final i = 2; const j = i; // 错区 final不能在编译时确定值,因此const也不能确定值

## 内置的类型

​ 与Java的八大内置基本数据类型不同,Dart 内置支持下面这些类型:

  • - numbers
  • - strings
  • - booleans
  • - lists (也被称之为 *arrays*)
  • - maps
  • - runes (用于在字符串中表示 Unicode 字符)
  • - symbols

------------数值----------------------

  1. `num`是数字类型的父类,有两个子类` int`和 `double`。
  2. Dart在编码时,可以将int当short,int,long使用
  3. Dart根据平台不同 如果我们写的代码超过4个字节,那么Dart将会将其编译成JAVA当中的Long,否则编译成shate或者int
  4. int 在JS里是32位,在JAVA中占64位-------Dart里int是一个类,JAVA里是关键字

------------------字符串-----------

Dart 字符串是 UTF-16 编码的字符序列。 可以使用单引号或者双引号来创建字符串,单引号和双引号可以嵌套使用,否则需要使用`\`进行转义。字符串中也可以引用变量与表达式。

  1. //如果插入一个简单的标识符,而后面没有紧跟更多的字母数字文本,那么{}应该被省略。例如:var a = "my name is $name!";         var b = "my name is ${name.toUpperCase()}!";
  2. 与Java一样可以使用 `+` 操作符来把拼接字符串,也可以把多个 字符串放到一起来实现同样的功能:
  3. 使用三个单引号或者双引号可以 创建多行字符串对象,例如:
    var s1 = '''
    You can create
    multi-line strings like this one.'''
        var s2 = """This is also a
    multi-line string.""";
    
    

​     4.提供一个 `r` 前缀可以创建一个 “原始 raw” 字符串

print(r"换行符:\n"); // 换行符:\n r:不需要转义

print("换行符:\\n"); // 换行符:\n

 

Lists---------------数组

这里以冒泡排序为例

 /**
   * 冒泡排序
   */
   List<int> list = [12, 95, 65, 86, 75, 65];

//  循环遍历---下标从0开始,list.length - 1是最后一位下
  for (var i = 0; i < list.length - 1; i++) {
    for (var j = 0; j < list.length - i - 1; j++) {
//      倒序---------如果后边的比自身大,就交换位置
      if (list[j] < list[j + 1]) {
//        交换位置
        int temp = list[j];
        list[j] = list[j + 1];
        list[j + 1] = temp;
      }
    }
  }
   //      打印
   print(list.toString());			
  打印:[95, 86, 75, 65, 65, 12]
//  赋值		
list[0] = 56;		打印:[56, 95, 65, 86, 75, 65]		
//  在值前边加const,可以定义为一个不变的常亮,list不可以add了,但可以引用其他对象	
List<int> list =const [12, 95, 65, 86, 75, 65];
list = [1,3,4]
//  在引用前边加const,那么这个引用就不可以引用其他类型了


Maps键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次。
  var maps = {'a': "zhanglu", 'b': "zhangsan", 'c': "lisi"};
//  第二种
  var maps = new Map();
  maps['a'] = "lichang";
  maps['b'] = "zhangli";
  maps['c'] = "wujing";

//如果插入一个简单的标识符,而后面没有紧跟更多的字母数字文本,那么{}应该被省略。
//  var a = "my name is $name!";
//  var b = "my name is ${name.toUpperCase()}!";
  print("${maps['a']}和${maps['b']}以及${maps['c']}");
  
  var keys = maps.values;

for (var key in keys) {
  print(key);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值