dart学习-基础说明

89 阅读3分钟

入口文件

  • 在dart中所有文件都存放在入口文件中
// 无返回值时用void
void main () {
  print('hello dart');
}
 main () {
  print('hello dart');
}
  • 在dart中一切变量全是对象,每个对象都是类的实例。所有的对象都继承自object类

数据类型

  • 字符串数据类型
    • String: 字符类型同ts中的string类型
  • 数值数据类型
    • int: 整数类型同ts中的number类型
    • double: 小数,浮点型同ts中的number类型
  • 布尔类型
    • bool: 布尔类型同ts中的boolean
  • List 数组
    • List = ['内容1','内容2','内容3']: 设置数组内的内容都是string类型同ts中的Array
    • List = [1,2,3]: 设置数组内的内容都是int类型同ts中的Array
    • List = [1.2,2,3.3]: 设置数组内的内容都是double类型同ts中的Array
    • 数组中的filled用法可以创建一个无法修改的固定长度的集合
      • filled有两个参数, 参数1: 数组长度, 参数2: 数组内容
  • Map字典
    • Map字典同ts中的对象类型
    • 获取内容: obj['key']

声明变量

  • 既可以通过var声明,也可以通过const或final常量进行声明
  • var可以定义一个变量, 并随时可以更改值同js中的var
  • 相比与js而言dart中没有了let却多出了个final来定义变量
  • 注意定义变量后没有进行赋值会返回null
  • dart中的常量
    • const: 与js中的一样, 定义一个常量且在定义时赋值,
    • final: 定义一个常量, 开始时可以不赋值, 但是只能赋值一次
  • 在dart中如果确定了变量类型也可以用 String 变量名, int 变量名等定义变量
  • 需要注意的是Dart 语言是强类型语言,我们无法将一个已声明具体类型的变量赋值给另一个类型
  • 关于变量声明和数据类型的参考代码如下
    final timer = new DateTime.now();
    print(timer); 
    void main () {
    // 字符串类型
    // 三引号多行str
    String str = '''33
    333''';
    String str1 = 'hellow';
    String str2 = 'dart';
    // 字符串拼接
    String str3 = '$str1 $str2'; //hellow dart
    // number类型
    int num1 = 122;
    double num2 = 12.22;
    // 布尔类型
    bool flag1 = true;
    bool flag2 = false;
    if(flag1) {
      print('真');
    } 
    if(!flag2) {
      print('假');
    } 
    // 定义集合类型
    var list1 = [1,'few',true];
    print(list1.length); // 数组长度
    print(list1[2]); // true
    // 指定数组类型
    var list2 = <String>['232','33'];
    // 数组增加数据 add
    var list3 = <int>[];
    list3.add(33);
    // 创建一个固定长度的集合 无法修改长度
    var list4 = List.filled(2, ''); // 两个参数 1. 数组长度, 2.内容
    var list5 = List<int>.filled(2,3); // [3, 3]
    print(list4); //[, ]
    print(list5);
    list4[0] = '1';
    // 定义map方式1
    var obj = {
      "name": 'lyx',
      "age": 25,
      "work": ['程序员', '日语']
    };
    print(obj['name']); // lyx
    print(obj['work']); // [程序员, 日语]
    // 定义map2
    var obj2 = new Map();
    obj2['name']='写代码的';
    print(obj2); // {name: 写代码的}
    
  • dart中的三引号类似ts总的反引号可以写入多行的内容
  • 字符串拼接可以通过 '变量名1变量名1 变量名2' 进行拼接

数据运算符

  • 大部分与js中一样如加减乘除, 取余等, 其中需要注意以下几个运算符
  • ~/: 对计算的结果进行取整处理
  • ??=: 如果符号左侧赋值了的话数值不变, 否则就需要重新赋值
    void main () {
      int a = 10;
      int b = 3;
      int c = a ~/b; // 对结果取整
      print(c); // 3
      int d = 3;
      // 如果b有值了则用原值否则重新赋值
      d ??= 4;
      print(d);//3
    }
    

类型转换

  • number 转 string: toString()
  • string 转 number: type.parse()
  • 检测是否是空字符: str.isEmpty()
  • 判断数据是否是nan: 变量.isNaN
void main() {
 // 字符转num , 建议用double
 String str1= '12.0';
 String str2= '12';
 num num1 = double.parse(str1);
 num num2 = double.parse(str2);
 print(num1 is num); // true
 print(num2); // 12.0
 // 错误处理抛出异常
 String str3 = '345geg';
 try {
   num num3 = double.parse(str3);
   print(num3 is num);
 } catch(err) {
   print('错误抛出');
 }
 // num 转 string
 num number1 = 12;
 String ntos = number1.toString();
 print(ntos is String); // true
 // p判断空字符 
 String nullStr = '';
 if(nullStr.isEmpty) {
   print('空字符');
 } else {
   print('非空字符');
 }
}
  • 以上就是dart中的基础.