Dart 基础数据类型及方法

Dart 变量

dart 可以不预先定义变量类型,会自动类型推倒,即 dart 语言有类型校验。

dart 中定义变量可以通过 var 关键字可以通过类型来申明变量,也可以直接定义类型。如

    var string1 = 'this is string1';

    String string2 = 'this is string2';

    int number = 123;

Dart 常量

dart 可使用 final 以及 const 修饰符定义常量。

两者都是用于定义常量,区别如下:

const: 定义时一开始就得赋值

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

const String str = "hello world!";
final time = new DateTime.now();

Dart的命名规则:

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

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

    1. 标识符不能是保留字和关键字。
  3. 变量的名字是区分大小写的如: age和Age是不同的变量。

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

Dart 数据类型

字符串类型

定义方式:

var string0 = 'string0';
String string1 = 'string1';
String string2 = "string2";
String string3 = '''可换行写的
string3''';

字符串拼接:

String str1='Hello';
String str2='world';
print("$str1 $str2"); // 利用 "$" 符号
print(str1 + str2); // 使用 "+" 进行字符串拼接

数值类型

int:整型

double:浮点型(既可以是整型也可以是浮点型)

运算符:+ - * / %

布尔类型

  1. bool 只有true及false两种类型

  2. 条件判断语句:== 及 !=

List 集合类型

定义方式:
// 第一种
var list1 = ['str1','str2','str3'];
// 第二种
var list2 = new List();
list2.add('str1');
list2.add('str2');
list2.add('str3');
// 第三种,定义指定 List 类型的
var list3 = new List();
list3.add('str1');
常用属性:
/*
    length          长度
    reversed        翻转
    isEmpty         是否为空
    isNotEmpty      是否不为空
*/
常用方法:
/*
  add         增加
  addAll      拼接数组
  indexOf     查找  传入具体值,查找不到返回 -1
  remove      删除  传入具体值
  removeAt    删除  传入索引值
  fillRange   修改列表中某个值   
  insert(index,value);            指定位置插入    
  insertAll(index,list)           指定位置插入List
  toList()    其他类型转换成List  
  join()      List转换成字符串
  split()     分割字符串转化成List
  forEach       循环遍历
  map                   也是循环遍历,可修改集合内的数据,并返回一个新的集合
  where             返回满足条件的 value
  any                   只要集合内有满足条件的value,即返回 true
  every             集合内每一个元素都满足条件,才返回 true
*/

Maps 类型

是无序的键值对,定义方式:

// 第一种
var maps1 = {
      'name':'name1',
      'age':10,
    };
print(maps1['name']);
// 第二种
var maps2 = new Map();
maps2['name'] = 'name2';
maps2['age'] = 20;
print(maps2['name']);
常用属性:
/*
  keys            获取所有的key值
  values          获取所有的value值
  isEmpty         是否为空
  isNotEmpty      是否不为空
*/
常用方法:
/*
  remove(key)     删除指定key的数据
  addAll({...})   合并映射  给映射内增加属性
  containsValue   查看映射内的值  返回true/false
  forEach   
  map
  where
  any
  every
*/

Set 类型

是没有顺序且不能重复的集合,所以不能通过索引去获取值,定义方式:

var set1 = new Set();
set1.add('seta');
set1.add('setb');

因为Set是不能重复的集合,所以Set 使用时的最主要的功能就是对数组进行去重。例:

  List fruitList = ['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
  var fruitSet = new Set();
  fruitSet.addAll(fruitList);

  print(fruitSet); // 打印结果为:{香蕉, 苹果, 西瓜}

类型判断

利用 is 关键字判断

var str = 'string';
if(str is String){
    print('str 是 String 类型');
  }

Dart 运算符

算数运算符

// + 加
// - 减
// * 乘
// / 除
// ~/ 取整
// % 取余

关系运算符

// == 判断是否相等
// != 判断是否不相等
// > 判断是否大于
// < 判断是否小于
// >= 判断是否大于等于
// <= 判断是否小于等于
逻辑运算符
/**
! 取反
&& 并且
|| 或
*/
赋值运算符
// 1. = 以及 ??=
 var a;
 a ??= 20; //表示:表示如果a为空,那么将20赋值给a

// 2. +=  -=  *=   /=   %=  ~/=
条件表达式
  1. if else
  2. switch case
  3. 三目运算符
  4. ?? 运算符,同赋值运算符 ??=
类型转换

String 与 Number 类型之间的转换

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

Dart 循环

  1. for
  2. while
  3. do ... while
break :

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

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

continue :

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

Dart 语言独特属性

可以通过给循环命名的方式,来指定停止某个循环。例:

   outerloop:
   for (var i = 0; i < 5; i++) { 
      innerloop: 
      for (var j = 0; j < 5; j++) { 
         if (j > 3 ) break ; 
         if (i == 2) break innerloop; 
         if (i == 4) break outerloop; 

         print("Innerloop: ${j} outerloop: ${i}"); 
      } 
   } 

你可能感兴趣的:(Dart 基础数据类型及方法)