零基础掌握Flutter:Dart数据类型的学习指南

发表时间: 2020-07-25 01:12



Dart的所有东西都是对象,它们都继承自Object,默认是都是null。

一、数据类型分类

和其他语言一样,Dart也有很多数据类型。Dart中支持的数据类型有:

  • Numbers 数值型: int 整型和 double浮点型
  • Strings 字符串类型: String 字符串
  • Booleans 布尔型:bool
  • List 数组:列表对象
  • Maps 字典:Map是一个键值对相关的对象,键和值可以是任何类型的对象。每个键只出现一次,而一个值则可以出现多次
  • Runes :Rune是UTF-32编码的字符串,可以通过文字转换成符号表情或者代表特定的文字。
  • Symbols :Symbol对象表示在Dart程序中声明的运算符或标识符。
  • Runes和Symbol基本上用不到



二、常用数据类型

1、字符串类型

通字符串使用单引号或者双引号都可以,多行的可以使用'''或"""来包裹.

  • 字符串定义的方式
var str1='this is str1';var str2="this is str2";String str3='this is str3';String str4="this is str4";//支持换行的方式String str5='''this is str1  this is str1  this is str1''';String str6="""  this is str1  this is str1  this is str1""";
  • 字符串的拼接
通字符串使用单引号或者双引号都可以,多行的可以使用'''来包裹.//两种方式String str1='你好';String str2='Dart';print("$str1 $str2");print(str1 + str2);print(str1 +" "+ str2);


2、数值类型

Dart中提供了两种数值类型, 分别是整型int和浮点型double。

如果是使用 num 声明的变量,那么可以在 int 和 double 之间相互转换。

但如果是直接定义了 int 或者 double , 那么就不能再赋其他类型的值。

num a = 12; print(a);  //打印a的值为12 a = 1.1;  //给a赋值为1.1 print(a); // 打印a的值为1.1
  • int 必须是整型
int a=123;//a=1.45;报错
  • double 既可以是整型 也可是浮点型
double b=23.5;b=24;prit(b);
  • 运算符
// + - * / %var a = 1;var b = 2;var c = a+b;print(c);
  • 常用属性

isNaN : num的属性,判断一个对象是否为非数字,是数字则返回false,否则返回true.

isEven : int 的属性,判断一个数字是否为偶数

isOdd : int 的属性,判断一个数字是否为奇数

sign : 返回该整数的符号(对于0返回0,对于小于0的值返回 -1,对于大于0的值返回 1。)

  • 常用方法
  • abs() : 返回该整数的绝对值
  • round() : 返回四舍五入的近似值
  • floorl() : 向下取整
  • ceil() : 向上取整
  • toInt() : 转成int类型 (舍去小数)
  • toDouble() : 转成double型

3、布尔类型

只有两个对象具有bool类型:true和false,它们都是编译时常量。

  • bool布尔值
bool flag1=true;print(flag1);bool flag2=false;print(flag2);
  • 条件判断语句
var flag=true;if(flag){  print('真');}else{  print('假');}var a=123;var b=123;if(a==b){  print('a=b');}else{  print('a!=b');}

4、List(数组/集合)

List特点:有序且可重复的

  • List的定义方式
有序且可重复的.//第一种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]);print(l2.length);//定义指定类型的Listvar l3=new List<String>();l3.add('张三');l3.add(123);print(l3);


5、Maps(字典)

map是将键和值相关联的对象。键和值都可以是任何类型的对象。
每个键只出现一次,但可以多次使用相同的值

  • 定义Map的方式
//第一种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"]);

6、Dart判断数据类型

Dart中用is 关键词来判断类型

var str=123;if(str is String){  print('是string类型');}else if(str is int){  print('int');}else{  print('其他类型');}