Dart入门基础介绍

Dart作为后来者,和Java、kotlin 和 JS 有着很多相似之处;Dart背靠Goole,个人认为还是很有前途的,Goole开发Dart语言起初的目的是想取代JS,目前看来是没有实现的;
不像JS(弱类型语言),Dart是一种强类型语言,是基于JIT的快速开发(开发过程中无需重新安装即可调试),基于AOT的发布包,采用的是单线程模式;
  • 变量
    Object、var与dynamic声明的变量可以赋任何类型的值
    dart中所有的类都继承于Object,在Dart中可以是任意对象,包括int等,任意对象的默认值均是null,var可以声明任意对象的变量,在赋值时决定变量的类型与值,一旦赋值后不可改变其变量类型;dynamic在运行时决定变量的值与类型;
    Dart 中 final 和 const 表示常量,staitc const表示静态常量;其中 const 的值在编译期确定,final 的值要到编译时才确定区别如下。(ps Flutter 在 Release 下是 AOT 模式。)
  const a = 1;
  const b = a + 1; //正确

  final c = 1; //编译时尚未确定值
  const d = c + 1; //错误 上面的final不能在编译时确定值,会报错
  • 内置类型

有一下几种;数值类型(num),字符串类型(String),布尔类型(bool),数组类型(List),映射集合(Map),Unicode(Runes),标识符(Symbols)其中后两种可能我们进本不会接触到。
dart中只有num ,int,double的数字类型,int占4个字节,int,double的父类都是num;
dart中String没有单个字符和多个字符的区别,其中独特的属性是可以通过${}来快速拼接,{}有时候可以省略;

  String str2 = "qwe";
//  $+变量+文字
  var p = "123$str2";
  print(p);//结果是123qwe

三个单引号 可以进行换行应用’’’ adc换行’’’;
Dart 字符串是UTF-16编码字符序列;
可以使用\来进行转义,其中特殊的使用可以是在前面加r表示该字符串内部特殊字符无效无需转义符号;
布尔类型 bool bb = false;

list数组,下面两种方式均可

  List<String> l = new List();
  List<int> ll = [1, 2];
List<int> l = const [1, 2, 34];
  l.add(23); //报错,不可修改的变量
  const List<int> dd = [12, 1, 232];
  dd.add(232); //报错,不可修改的变量

Unhandled exception:
Unsupported operation: Cannot add to an unmodifiable list
const 修饰的是变量也是引用,变量不能再重复引用其他对象,不能再add;

冒泡排序

 var list = [2, 4, 78, 24, 45, 1, 34, 22];
//冒泡排序
  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]) {
        var tem = list[j];
        list[j] = list[j + 1];
        list[j + 1] = tem;
      }
    }
  }

  • 类型转换
    不支持java的强转写法,(int)类似这样不支持
//强转写法
  num j = 9;
  int ff = j as int;

没有java的 instancef的写法,使用 is 和is!的写法

  • 操作符
    =+=\=*=这些不必多说,还有一个 ??= 操作符用来指定 值为 null 的变量的值
b ??= value; // 如果 b 是 null,则 value 赋值给 b;
             // 如果不是 null,则 b 的值保持不变
  • 条件表达式
    condition ? expr1 : expr2

如果 condition 是 true,执行 expr1 (并返回执行的结果); 否则执行 expr2 并返回其结果。
expr1 ?? expr2

如果 expr1 不为null,返回其值; 否则执行 expr2 并返回其结果。

  • 级联操作符

​ 级联操作符 (..) 可以在同一个对象上 连续调用多个函数以及访问成员变量。 使用级联操作符可以避免创建 临时变量, 并且写出来的代码看起来 更加流畅,类似于java中的建造者模式;

  • 安全操作符
    Dart提供了 ?.操作符。左边的操作对象 如果 为 null 则返回 null
String sb;
//空指针
print(sb.length);
print(sb?.length);

猜你喜欢

转载自blog.csdn.net/believeinbelieve/article/details/88808229