小菜鸡开始学习flutter之三

60 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

今日目标

详细了解Dart的数据类型

有哪些类型

在Dart中常用到的数据类型有以下几种

类型含义备注
Nubmer数值包含int 和dobule
String字符
Bool布尔
List数组在Dart中,数组是一个列表对象, 所以也可以称为列表
Map字典Map是一个键值对相关的对象,它的键和值可以是任何类型的对象,每个键只出现一次

不常用的类型有:

类型含义备注
RuneUTF-32编码的字符串它可以通过文字转换成富豪表情或者代表特定的文字
Symbol声明的运算符或标识符基本用不到

String

如何定义一个String类型

有一下几种方式

var str = 'now you have a string';
// 通过Dart的类型推断

String str1 = 'use by String type';
// 通过类型标识符

String str2 = '''line1
line2

line3
'''
// 除了两个单双引号,也可以使用3个单引号或双引号,这样定义的字符串在print的时候可以保留格式,支持多行输入,但是两个单双的是不支持多行的。

image.png

字符串的拼接

在Dart中通过符号加变量名来做标识,类似于js中的符号加变量名来做标识,类似于js中的 `{str1} ${str2}`或者通过+拼接,和js类似

String str1 = '掘金';

String str2 = '你太有才了';

print('$str1 $str2');
print(str1 + str2);

image.png

Number

在Dart中Nubmer还细分为两种数字类型 intdouble即整型和浮点型

int num1 = 123123;
double num2 = 12.15465;

image.png Tips: 浮点型不可以赋值给整型,但是整型可以赋值给浮点型

运算规则

image.png 运算规则和js中的四则运算是一样的,也是使用同样的运算标识符

bool

布尔类型只有两个值true 或者 false

bool a = false;

条件判断

bool flag = true;
if (flag) {
    print('true');
} else {
    print('false');
}

int a = 1;
int b = 2;
string c = '1';
if (a == b) {
    print('a == b');
} else {
    print('a != b');
}

if (a == c) {
    print('a == c');
} else {
    print('a != c');
}

image.png

在Dart中做判断的时候不会对变量做类型隐试转换,所以在做判断的时候要注意类型统一。

List

// 不指定类型定义List
var list = ['str1', 12, false];

print(list);

print(list.length);

print(list[0]);

// 指定类型定义List

var list2 = <String>['1', '2', 3]; // 会报错,因为3是nubmer型

// list增加数据

var list3 = [];

list3.add('你太有才了');

// 通过new list 创建list(在新版Dart中,该方式已被废弃) 

var list4 = new List();

// 创建固定长度的list

var list5 = List.filled(length, fill) // 固定长度的集合是无法向其中增加数据的,也无法修改长度
var list6 = List<int>.filled(length, fill) // 指定填充的类型

Dart 中list和js中的Array其实差不多,方法上有些差异 通过list.add()向list中添加数据,通过索引下标来获取或者修改指定索引的值。索引下标从0开始。也可以指定一个list中填充的数据类型是哪一种,指定过类型的list是不能添加其他类型的数据。 通过List.filled 来创建一个指定长度的list。

Map

var map1 = {
    'name': '有才'
};

print(map1['name']);

map类型和js中obj差不读,在js中你可以通过.键值的形式获取到值,在dart中要通过中括号的形式来获取。 也可以通过new Map 来声明一个map变量,通过下标的方式给变量进行赋值。

var map2 = new Map()

map2['name'] = '你太有才了'

类型判断

在dart中可以通关is这个关键字来判断变量的类型,因为有的时候我们的数据是通过接口获取的这个时候你可以能担心返回的数据类型并没有按照约定的形式返回这个时候就可以通过is来判断一下数据的类型。

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

通过今天的学习了解到了一些Dart中的几种类型。
加油,卷起来~~~