文章目录
- 一、概述
- 1.为什么叫内建类型?
- 2.Dart的内建类型有哪些?
- 二、内建类型详解
- 1.num
- 2.int
- 3.double
- 4.String
- 5.bool
- 6.List
- 7.Map
- 8.Function
- 三、总结
一、概述
"The greatest glory in living lies not in never falling, but in rising every time we fall." - Nelson Mandela
"生活中最大的荣耀不在于从不跌倒,而在于每次跌倒后都能重新站起。" - 纳尔逊·曼德拉
1.为什么叫内建类型?
“内建类型”(built-in types)这个说法是因为 Dart 语言自带了一些数据类型,比如 int
、double
、String
等,用户不需要再定义就可以直接使用,因此这些类型被称为内建类型。
2.Dart的内建类型有哪些?
Dart 内建类型有:
num
:数字类型的父类型,包括int
和double
。int
:整数类型。double
:浮点数类型。String
:字符串类型。bool
:布尔类型。List
:数组类型。Map
:字典类型。Function
:函数类型。
此外,Dart 还有一些特殊的内建类型,如 dynamic
、var
、Object
等。
二、内建类型详解
1.num
num
是 Dart 语言中的父类型,用来表示数字类型。它是 int
和 double
的父类型,可以表示整数和浮点数。
下面是一个简单的示例:
num a = 10;
num b = 3.14;
print(a + b); // 13.14
在上面的代码中,a
被声明为数字类型 num
,并赋值为整数 10。b
也被声明为数字类型 num
,并赋值为浮点数 3.14。然后,它们两个被相加,结果为 13.14。
因为 num
是 int
和 double
的父类型,所以它可以容纳两种数字类型,并且可以被强制转换为 int
或 double
类型。
num c = 10;
int d = c;
print(d); // 10
num e = 3.14;
double f = e;
print(f); // 3.14
在上面的代码中,变量 c
被赋值为整数 10,并强制转换为整数类型 int
,赋值给变量 d
。同样,变量 e
被赋值为浮点数 3.14,并强制转换为浮点数类型 double
,赋值给变量 f
。
2.int
int
是 Dart 语言中的整数类型。它用来表示整数,如 0、1、2、3 等。
下面是一个简单的示例:
int a = 10;
int b = 20;
print(a + b); // 30
在上面的代码中,a
和 b
都被声明为整数类型 int
,并分别赋值为 10 和 20。然后,它们两个被相加,结果为 30。
注意:整数类型 int
不能表示小数,如果需要表示小数,则应使用浮点数类型 double
。
此外,Dart 中的整数类型 int
支持各种数学运算,如加减乘除、取模等。
下面是一个简单的示例:
int a = 10;
int b = 3;
print(a + b); // 13
print(a - b); // 7
print(a * b); // 30
print(a / b); // 3
print(a % b); // 1
在上面的代码中,变量 a
和 b
都被声明为整数类型 int
,分别赋值为 10 和 3。然后,它们进行加减乘除和取模等数学运算。
3.double
double
是 Dart 语言中的浮点数类型。它用来表示浮点数,如 3.14、1.23 等。
下面是一个简单的示例:
double a = 10.5;
double b = 20.3;
print(a + b); // 30.8
在上面的代码中,a
和 b
都被声明为浮点数类型 double
,并分别赋值为 10.5 和 20.3。然后,它们两个被相加,结果为 30.8。
注意:浮点数类型 double
的精度有限,不能精确地表示所有小数,而且在一些特殊情况下,可能导致精度问题。
此外,Dart 中的浮点数类型 double
也支持各种数学运算,如加减乘除等。
下面是一个简单的示例:
double a = 10.5;
double b = 3.14;
print(a + b); // 13.64
print(a - b); // 7.36
print(a * b); // 32.93
print(a / b); // 3.33
在上面的代码中,变量 a
和 b
都被声明为浮点数类型 double
,分别赋值为 10.5 和 3.14。然后,它们进行加减乘除等数学运算。
4.String
String
是 Dart 语言中的字符串类型。它用来表示文本字符串,如 “Hello World”、“Dart is Fun” 等。
下面是一个简单的示例:
String name = "John Doe";
print("Hello, " + name); // Hello, John Doe
在上面的代码中,变量 name
被声明为字符串类型 String
,并赋值为 “John Doe”。然后,它和字符串 "Hello, " 进行拼接,结果为 “Hello, John Doe”。
Dart 中的字符串类型 String
支持各种字符串操作,如拼接、切片、搜索、替换等。
下面是一个简单的示例:
String s1 = "Hello";
String s2 = "World";
print(s1 + " " + s2); // Hello World
print(s1.length); // 5
print(s2.substring(0, 4)); // Worl
print(s1.replaceAll("l", "x")); // Hexxo
在上面的代码中,变量 s1
和 s2
都被声明为字符串类型 String
,分别赋值为 “Hello” 和 “World”。然后,它们进行拼接、求长度、切片、替换等字符串操作。
5.bool
bool
是 Dart 语言中的布尔类型,用来表示真假两种状态。在 Dart 中,只有两个值可以表示布尔类型:true
和 false
。
下面是一个简单的示例:
bool isTrue = true;
bool isFalse = false;
print(isTrue); // true
print(isFalse); // false
在上面的代码中,变量 isTrue
和 isFalse
都被声明为布尔类型 bool
,分别赋值为 true
和 false
。
布尔类型主要用来在条件判断语句(if
、switch
、while
等)中,作为判断条件,决定是否执行特定代码。
下面是一个简单的示例:
bool isTrue = true;
if (isTrue) {
print("This is true."); // This is true.
} else {
print("This is false.");
}
在上面的代码中,变量 isTrue
被声明为布尔类型 bool
,并赋值为 true
。然后,它作为判断条件,决定执行哪一个分支。如果 isTrue
为 true
,则执行第一个分支,并输出 “This is true.”。
6.List
List
是 Dart 语言中的列表类型,也称为数组。它是一种有序的元素集合,可以存储任何类型的数据,包括数字、字符串、布尔值等。
创建一个列表需要使用方括号 []
,并在方括号内使用逗号 ,
分隔元素。
下面是一个简单的示例:
List<String> names = ["Alice", "Bob", "Charlie"];
print(names); // [Alice, Bob, Charlie]
在上面的代码中,变量 names
被声明为列表类型 List<String>
,表示这是一个字符串元素的列表。然后,列表中的三个字符串元素被分别初始化为 “Alice”、“Bob”、“Charlie”。
列表的元素可以使用下标访问,下标从 0
开始。
下面是一个简单的示例:
List<String> names = ["Alice", "Bob", "Charlie"];
print(names[0]); // Alice
print(names[1]); // Bob
print(names[2]); // Charlie
在上面的代码中,列表 names
中的每一个元素都可以通过下标访问。例如,通过 names[0]
可以访问列表中的第一个元素 “Alice”。
一个列表的元素可以是不同类型的。Dart 是一种动态类型语言,不需要在创建列表时明确指定列表元素的类型。因此,您可以在同一列表中存储多种类型的元素。
List mixedList = [1, "Hello", true];
print(mixedList[0]); // 1
print(mixedList[1]); // Hello
print(mixedList[2]); // true
在上面的代码中,列表 mixedList
中的三个元素分别是整数、字符串和布尔值。它们可以通过下标访问,如上面代码中所示。
7.Map
Map 是 Dart 中一种用于存储键/值对的数据结构。键和值都可以是任何类型的值,键是唯一的。您可以通过键来访问与之对应的值。
这是一个示例:
var student = {
'name': 'John Doe',
'age': 30,
'isGraduate': true
};
print(student['name']); // John Doe
print(student['age']); // 30
print(student['isGraduate']); // true
在上面的代码中,我们创建了一个名为 student
的 Map,并存储了三个键/值对。您可以通过访问字典中的键来访问与之对应的值。
8.Function
Function 是 Dart 中一种代码块的类型,可以作为变量进行赋值、作为参数传递给其他函数、作为返回值返回给调用者。
// 定义一个函数
String greet(String name) {
return 'Hello, $name!';
}
// 调用函数
print(greet('John Doe')); // Hello, John Doe!
// 将函数赋值给变量
var greetFunction = greet;
print(greetFunction('Jane Doe')); // Hello, Jane Doe!
// 作为参数传递给其他函数
void printGreeting(String name, String Function(String) greet) {
print(greet(name));
}
printGreeting('John Doe', greet); // Hello, John Doe!
在上面的代码中,我们定义了一个名为 greet
的函数,该函数接受一个字符串类型的参数 name
,并返回一个字符串类型的值。我们还将该函数赋值给了变量 greetFunction
,并使用它作为参数传递给了另一个函数 printGreeting
。
三、总结
这次我们学习了Dart的内建类型,这些类型在我们的代码中是会被经常用到。