一、联合类型(Union Types)
在 TS 中,联合类型(Union Types)允许一个变量或参数具有多种可能的类型。
使用联合类型可以灵活地处理多种不同类型的数据。
1.定义联合类型
联合类型通过使用竖线 | 分隔多种类型来定义。
例如:
上述代码中的 myVariable 是一个联合类型变量,可以存储 number 类型或 string 类型的值。
2.使用联合类型
联合类型可以用于变量、函数参数、函数返回值等多种情况。
变量:可以根据需要给联合类型变量赋予不同类型的值。
函数参数:函数的参数可以声明为联合类型,表示允许传入多种类型的参数。
函数返回值:函数的返回值可以声明为联合类型,表示函数可能返回多种类型的值
二、数组类型
数组类型用于表示包含相同类型元素的集合
1.定义数组类型
可以在变量后面加上方括号 [ ] 来表示数组类型。
例如:
上述代码中的numbers是一个数组类型变量,它只能包含number类型的元素。
2.初始化数组
在定义数组类型时,可以初始化数组并赋予初始值。
有以下几种方式:
直接赋值:
使用数组字面量:
使用数组构造函数:
3.访问数组元素
可以使用下标操作符 [ ] 来访问数组中的元素,下标从 0 开始。
4.数组方法和属性
TypeScript 提供了许多数组方法和属性,可以对数组进行操作和查询。\
常用的方法和属性包括:
length 属性:获取数组的长度。
push ( ) 方法:向数组末尾添加元素。
pop ( ) 方法:从数组末尾移除一个元素。
concat ( ) 方法:连接两个或多个数组。
slice ( ) 方法:从数组中提取一部分元素作为新数组。
forEach ( ) 方法︰对数组中的每个元素执行指定的操作。
例如:
5.多维数组
可以使用多维数组来表示包含多个维度的数据。
例如,二维数组的定义和访问方法如下
三、进程与线程
在计算机科学中,进程(Process)和线程(Thread)是操作系统中的概念,用于管理和执行程序的执行单元。
什么是进程(Process)?
进程是计算机中正在运行的程序的实例。它是资源分配和管理的基本单位。
每个进程在内存中都有独立的地址空间,包括代码、数据和堆栈等。
进程之间相互独立,彼此隔离,互不干扰。它们不能直接访问对方的内存数据,需要通过进程间通信(IPC)来进行数据传递和共享。
操作系统通过进程调度来分配CPU时间片给不同的进程,使它们能够交替执行,实现并发性。
线程(Thread):
线程是进程内的执行流,是进程的一个实体。一个进程可以包含多个线程,每个线程都独立执行不同的任务。
线程共享同一进程的地址空间和资源,包括打开文件、变量和堆栈等。
线程之间可以直接访问共享数据,通过读写共享内存来进行通信。
线程执行的顺序和调度由操作系统决定,可以同时运行在多个CPU核心上,实现真正的并行性。
区别:
进程是资源分配的基本单位,而线程是执行的基本单位。
进程之间相互独立,线程是进程内的执行流。
进程拥有独立的地址空间,线程共享进程的地址空间。
进程之间的切换开销较大,线程切换开销较小。
进程之间通信需要使用进程间通信机制,线程之间可以直接读写共享内存。