TypeScript学习笔记(八)函数的类型
函数声明
需要对函数的输入和输出进行限制。
输入多余的(或者少于要求的)参数,是不被允许的
123function sum(x: number, y: number): number { return x + y;}
函数表达式
在 TypeScript 的类型定义中,=> 用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。
123let mySum: (x: number, y: number) => number = function (x: number, y: number): number { return x + y;};
用接口定义函数的形状
采用函数表达式|接口定义函数的方式时,对等号左侧进行类型限制,可以保证以后对函数名赋值时保证参数个数、参数类型、返回值类型不变。
12345678interface SearchFunc { (source: string, subString: string): boolean;}let mySearch: Se ...
TypeScript学习笔记(七)数组类型
在 TypeScript 中,数组类型有多种定义方式,比较灵活。
「类型 + 方括号」表示法
数组的一些方法的参数也会根据数组在定义时约定的类型进行限制。
123456789let fibonacci: number[] = [1, 1, 2, 3, 5];let fibonacci: number[] = [1, '1', 2, 3, 5];// Type 'string' is not assignable to type 'number'.let fibonacci: number[] = [1, 1, 2, 3, 5];fibonacci.push('8');// Argument of type '"8"' is not assignable to parameter of type 'number'.
数组泛型
Array<elemType> 来表示数组
1let fibonacci: Array<number& ...
TypeScript学习笔记(六)对象的类型——接口
定义
在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型。
接口
接口是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。
TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。
使用
接口一般首字母大写。有的编程语言中会建议接口的名称加上 I 前缀。
定义的变量比接口多/少了一些属性是不允许的,即:赋值的时候,变量的形状必须和接口的形状保持一致
12345678910111213141516interface Person { name: string; age: number;}let tom: Person = { name: 'Tom', age: 25};let jack: Person = { name: 'Jack'};// index.ts(6,5): error TS2322: Typ ...
TypeScript学习笔记(五)联合类型
定义
联合类型(Union Types)表示取值可以为多种类型中的一种。
使用方法
联合类型使用 | 分隔每个类型
例子123let myFavoriteNumber: string | number;myFavoriteNumber = 'seven';myFavoriteNumber = 7;
访问联合类型的属性或方法
当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法;
联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型
1234567891011121314151617181920212223242526272829/* length 不是 string 和 number 的共有属性,所以会报错 toString 是 string 和 number 的共有属性*/function getString(something: string | number): string { return something.toString(); ...
TypeScript学习笔记(四)类型推论
定义
如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。
举例:
123let myFavoriteNumber = 'seven';//等价于let myFavoriteNumber: string = 'seven';
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查。
123let myFavoriteNumber;myFavoriteNumber = 'seven';myFavoriteNumber = 7;
TypeScript学习笔记(三)任意值
定义
任意值用来表示允许赋值为任意类型。
123let test1: any = 'seven';test1 = 7;
任意值的属性和方法
在任意值上访问任何属性都是允许的,同时也允许调用任何方法。
声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
12345678let anyThing: any = 'hello';console.log(anyThing.myName);console.log(anyThing.myName.firstName);let anyThing: any = 'Tom';anyThing.setName('Jerry');anyThing.setName('Jerry').sayHello();anyThing.myName.setFirstName('Cat');
未声明类型的变量
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
12345let something;somethin ...
TypeScript学习笔记(二)原始数据类型
JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型 BigInt。
布尔值
定义:boolean
构造函数Boolean创建的对象不是布尔值。
123456let test1: boolean = false;let test2: boolean = new Boolean(1);//报错let test3: boolean = Boolean(1);
数值
定义:number
ES6中的二进制和八进制表示法会被编译为十进制数字。
1let test1: number = 1;
字符串
定义:string
1let test1: string = 'Hello World!';
空值
定义:void
用于表示没有任何返回值的函数。
123function alert(): void{ alert('Hello ...
TypeScript学习笔记(一)思维导图
TypeScript 基础
TypeScript 进阶
React学习笔记(二)面向组件编程1
创建函数式组件1234567// 函数式创造组件function MyComponent(params) { console.log(this); return <h2>我是用函数定义的组件(适用于【简单组件】的定义)</h2>;}// 渲染组件ReactDOM.render(<MyComponent/>,document.getElementById('test'));
注意:由于babel编译会开启严格模式,在严格模式下this指向为undefined。
渲染组件到页面的整个过程:
React解析组件标签,找到MyComponent组件。
发现组件时使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面中。
创建类式组件12345678// 类式组件创建class MyComponent extends React.Component{ render(){ return <h2>我是用类定义的组件(适用于【复 ...
科学计算导论实验一并行计算MPI
实验一 并行计算MPI实验目的初步了解并行计算的概念,能够在 Windows 平台上安装 MPI 库(OpenMPI或者 MPICH2),并掌握在 Visual studio 中调用 MPI 头文件的方法;初步掌握使用MPI 编制并行程序的步骤与核心函数的意义及其参数的含义。
实验内容(1)介绍并行计算消息接口 MPI 的定义、应用背景与基本概念;(2)在教师指导下在 Windows 系统上安装 MPI,(鼓励学生在 Linux 操作系统上安装以及完成实验);(3)教师讲解 MPI 程序编制的基本步骤,演示基于 MPI 的两个演示程序;(4)在教师指导下,学生完成基于 MPI 的两个演示程序(鼓励学生添加入其他基于 MPI 的功能),完成相应的实验报告。
实验要求(1)独立完成两个演示程序。(2)独立完成实验报告,给出在操作系统上安装 MPI 的详细过程,以及实现的代码,着重分析MPI并行程序的优势以及可能的应用领域、普通C/C++程序与 MPI 程序的区别,在实验报告中应给出程序运行的结果截图。
实验过程
安装MPI详细过程:
在Visual Studio2019中配置MPI环境
...