Flutter入门Dart语言:初步了解内建类型

Posted 小雨青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter入门Dart语言:初步了解内建类型相关的知识,希望对你有一定的参考价值。

文章目录

一、概述

"The greatest glory in living lies not in never falling, but in rising every time we fall." - Nelson Mandela

"生活中最大的荣耀不在于从不跌倒,而在于每次跌倒后都能重新站起。" - 纳尔逊·曼德拉

1.为什么叫内建类型?

“内建类型”(built-in types)这个说法是因为 Dart 语言自带了一些数据类型,比如 intdoubleString 等,用户不需要再定义就可以直接使用,因此这些类型被称为内建类型。

2.Dart的内建类型有哪些?

Dart 内建类型有:

  • num:数字类型的父类型,包括 intdouble
  • int:整数类型。
  • double:浮点数类型。
  • String:字符串类型。
  • bool:布尔类型。
  • List:数组类型。
  • Map:字典类型。
  • Function:函数类型。

此外,Dart 还有一些特殊的内建类型,如 dynamicvarObject 等。

二、内建类型详解

1.num

num 是 Dart 语言中的父类型,用来表示数字类型。它是 intdouble 的父类型,可以表示整数和浮点数。

下面是一个简单的示例:

num a = 10;
num b = 3.14;

print(a + b);  // 13.14

在上面的代码中,a 被声明为数字类型 num,并赋值为整数 10。b 也被声明为数字类型 num,并赋值为浮点数 3.14。然后,它们两个被相加,结果为 13.14。

因为 numintdouble 的父类型,所以它可以容纳两种数字类型,并且可以被强制转换为 intdouble 类型。

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

在上面的代码中,ab 都被声明为整数类型 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

在上面的代码中,变量 ab 都被声明为整数类型 int,分别赋值为 10 和 3。然后,它们进行加减乘除和取模等数学运算。

3.double

double 是 Dart 语言中的浮点数类型。它用来表示浮点数,如 3.14、1.23 等。

下面是一个简单的示例:

double a = 10.5;
double b = 20.3;

print(a + b);  // 30.8

在上面的代码中,ab 都被声明为浮点数类型 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

在上面的代码中,变量 ab 都被声明为浮点数类型 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

在上面的代码中,变量 s1s2 都被声明为字符串类型 String,分别赋值为 “Hello” 和 “World”。然后,它们进行拼接、求长度、切片、替换等字符串操作。

5.bool

bool 是 Dart 语言中的布尔类型,用来表示真假两种状态。在 Dart 中,只有两个值可以表示布尔类型:truefalse

下面是一个简单的示例:

bool isTrue = true;
bool isFalse = false;

print(isTrue);  // true
print(isFalse); // false

在上面的代码中,变量 isTrueisFalse 都被声明为布尔类型 bool,分别赋值为 truefalse

布尔类型主要用来在条件判断语句(ifswitchwhile 等)中,作为判断条件,决定是否执行特定代码。

下面是一个简单的示例:

bool isTrue = true;

if (isTrue) 
  print("This is true.");  // This is true.
 else 
  print("This is false.");

在上面的代码中,变量 isTrue 被声明为布尔类型 bool,并赋值为 true。然后,它作为判断条件,决定执行哪一个分支。如果 isTruetrue,则执行第一个分支,并输出 “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的内建类型,这些类型在我们的代码中是会被经常用到。

以上是关于Flutter入门Dart语言:初步了解内建类型的主要内容,如果未能解决你的问题,请参考以下文章

『Flutter开发实战』十分钟入门Dart语言

Flutter入门Dart语言:简单易懂的变量指南

Flutter入门Dart语言:控制流语句的基本用法

Flutter入门-Dart面向对象原理

Flutter--实战Dart 语言快速入门

初步了解flutter pubspec.yaml