当前位置: 首页 > news >正文

前端面试题大合集9----TypeScript

目录

一、TypeScript 中静态类型的概念及其好处

二、如何在 TypeScript 的接口中定义可选属性?

三、解释 TypeScript 中联合类型的概念并提供示例

四、TypeScript 中的类型断言是什么?

五、TS中泛型是什么?

六、解释 TypeScript 中的“keyof”关键字

七、 TypeScript 中的类型保护是什么

八、解释 TypeScript 中条件类型的概念

九、TypeScript 中的映射类型是什么

十、解释 TypeScript 中的“部分”实用程序类型

十一、TypeScript 中的“只读”实用程序类型

十二、映射类型中的“键重新映射”和“值重新映射”是什么

十三、解释 TypeScript 中的“Pick”实用程序类型

十四、TypeScript 中的“Omit”实用程序类型是什么

十五、TypeScript 中的“条件映射类型”是什么

十六、条件类型中“keyof”和“in”关键字的用途是什么

十七、解释 TypeScript 中的“排除”实用程序类型

十八、TypeScript 中的“模板文字类型”是什么

十九、解释条件类型中的“infer”关键字

二十、TypeScript 中的“keyof”和“typeof”关键字有何用途

二一、TypeScript 中的“const 断言”是什么

二三、解释 TypeScript 条件类型中的“keyof T extends K”构造

二四、TypeScript 中的“mixins”是什么

二五、TypeScript 中的“装饰器”是什么

二六、解释 TypeScript 中的“abstract”关键字

二七、什么是 TypeScript 中的“条件类型”

二八、TypeScript 中的“模块增强”是什么

二九、TypeScript 接口中的“索引签名”是什么

三十、TypeScript 中的“类型谓词”是什么


TypeScript 是 JavaScript 的超集,为该语言添加了静态类型。它允许开发人员定义变量、函数参数和返回值的数据类型,这有助于在编译时而不是运行时捕获错误。这是一个例子:

function greet(name: string): string {return `Hello, ${name}!`;
}
const message: string = greet('John');
console.log(message); // Output: "Hello, John!"
一、TypeScript 中静态类型的概念及其好处

TypeScript 中的静态类型可以在开发过程中指定变量、函数参数和返回值的数据类型。这有助于及早捕获与类型相关的错误,从而提高代码质量和可维护性。

好处是拥有更好的代码文档、增强的工具支持以及提高的开发人员生产力。

二、如何在 TypeScript 的接口中定义可选属性?

您可以使用 ? 在接口中定义可选属性。属性名称后面的修饰符。可选属性可能存在于实现该接口的对象中,也可能不存在。这是一个例子:

interface Person {name: string;age?: number;
}
const john: Person = { name: 'John' };
const jane: Person = { name: 'Jane', age: 25 };
三、解释 TypeScript 中联合类型的概念并提供示例

联合类型允许一个变量有多种类型。它通过使用 | 来表示类型之间的符号。这允许变量存储任何指定类型的值。这是一个例子:

function printId(id: number | string): void {console.log(`ID: ${id}`);
}
printId(123); // Output: "ID: 123"
printId('abc'); // Output: "ID: abc"
四、TypeScript 中的类型断言是什么?

当无法自动推断类型时,TypeScript 中的类型断言允许您显式告诉编译器变量的类型。这是使用 <type> 或 as type 语法实现的。这是一个例子:

let length: any = '5';
let numberLength: number = <number>length; // Using <type> syntax
let stringLength: number = length as number; // Using "as type" syntax
五、TS中泛型是什么?

TypeScript 中的泛型允许您创建可与各种类型一起使用的可重用组件或函数。它们支持强类型,同时保持使用不同数据类型的灵活性。这是一个例子:

function identity<T>(arg: T): T {return arg;
}
const result1 = identity<number>(42); // Explicitly specifying the type
const result2 = identity('hello'); // Inferring the type
六、解释 TypeScript 中的“keyof”关键字

TypeScript 中的“keyof”关键字是一个类型运算符,它返回表示对象键的文字类型的联合。它允许您对对象键执行类型安全操作。这是一个例子:


interface Person {name: string;age: number;
}
type PersonKeys = keyof Person; // "name" | "age"
七、 TypeScript 中的类型保护是什么

类型保护是 TypeScript 表达式,它在运行时检查变量的类型,并允许您根据类型执行不同的操作。它们可以实现更好的类型推断,并提供一种更有效地处理联合类型的方法。

这是使用 typeof 和 instanceof 类型保护的示例:

function printValue(value: string | number): void {if (typeof value === 'string') {console.log(`The value is a string: ${value}`);} else if (typeof value === 'number') {console.log(`The value is a number: ${value}`);}
}
class Person {name: string;constructor(name: string) {this.name = name;}
}
function greet(person: Person | string): void {if (person instanceof Person) {console.log(`Hello, ${person.name}!`);} else if (typeof person === 'string') {console.log(`Hello, ${person}!`);}
}
const stringValue: string = 'Hello';
const numberValue: number = 42;printValue(stringValue); // Output: "The value is a string: Hello"
printValue(numberValue); // Output: "The value is a number: 42"const john: Person = new Person('John');greet(john); // Output: "Hello, John!"
greet('Jane'); // Output: "Hello, Jane!"
八、解释 TypeScript 中条件类型的概念

TypeScript 中的条件类型允许您创建依赖于条件的类型。它们用于根据类型之间的关系执行类型推断。这是一个例子:


type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function add(a: number, b: number): number {return a + b;
}
type AddReturnType = ReturnType<typeof add>; // number

在此示例中,ReturnType 是推断函数返回类型的条件类型。

九、TypeScript 中的映射类型是什么

TypeScript 中的映射类型允许您通过将属性映射到新类型来基于现有类型创建新类型。它们使您能够轻松修改现有类型或向现有类型添加属性。这是一个例子:

interface Person {name: string;age: number;
}
type PersonWithOptionalProperties = { [K in keyof Person]?: Person[K] };
const john: Person = { name: 'John', age: 30 };
const johnWithOptionalProperties: PersonWithOptionalProperties = { name: 'John' };

在此示例中,PersonWithOptionalProperties 是一个映射类型,它使 Person 的所有属性都是可选的。

十、解释 TypeScript 中的“部分”实用程序类型

TypeScript 中的“部分”实用程序类型用于使现有类型的所有属性成为可选。它允许您从现有类型创建具有可选属性的新类型。这是一个例子:

interface Person {name: string;age: number;
}
type PartialPerson = Partial<Person>;
const john: PartialPerson = { name: 'John' };

在此示例中,PartialPerson 是具有来自 Person 接口的可选属性的类型。

十一、TypeScript 中的“只读”实用程序类型

TypeScript 中的“Readonly”实用程序类型用于使现有类型的所有属性变为只读。它可以防止对象创建后修改其属性。这是一个例子:

interface Person {readonly name: string;age: number;
}
const john: Readonly<Person> = { name: 'John', age: 30 };
john.age = 31; // Error: Cannot assign to 'age' because it is a read-only property.
十二、映射类型中的“键重新映射”和“值重新映射”是什么

“键重映射”和“值重映射”是 TypeScript 中映射类型的两个特性。

“键重新映射”允许您使用 as 关键字更改现有类型的键。这是一个例子:


interface Person {name: string;age: number;
}
type MappedPerson = { [K in keyof Person as `new_${K}`]: Person[K] };
const john: MappedPerson = { new_name: 'John', new_age: 30 };

在此示例中,Person 的键被重新映射为具有前缀“new_”。

“值重新映射”允许您使用条件类型更改现有类型的值。这是一个例子:

type ValueRemapped<T> = T extends 'a' ? 'x' : T extends 'b' ? 'y' : 'z';
type Result = ValueRemapped<'a' | 'b' | 'c'>; // Result: 'x' | 'y' | 'z'

在此示例中,值“a”、“b”和“c”分别重新映射为“x”、“y”和“z”。

十三、解释 TypeScript 中的“Pick”实用程序类型

TypeScript 中的“Pick”实用程序类型允许您通过从现有类型中选择特定属性来创建新类型。它有助于创建现有类型的子集。这是一个例子:


interface Person {name: string;age: number;city: string;
}
type PersonInfo = Pick<Person, 'name' | 'age'>;
const john: PersonInfo = { name: 'John', age: 30 };

在此示例中,PersonInfo 是仅包含 Person 接口中的“name”和“age”属性的类型。

十四、TypeScript 中的“Omit”实用程序类型是什么

TypeScript 中的“Omit”实用程序类型允许您通过从现有类型中排除特定属性来创建新类型。它有助于创建删除了某些属性的类型。这是一个例子:


interface Person {name: string;age: number;city: string;
}
type PersonWithoutCity = Omit<Person, 'city'>;
const john: PersonWithoutCity = { name: 'John', age: 30 };

在此示例中,PersonWithoutCity 是一种从 Person 接口中排除“city”属性的类型。

十五、TypeScript 中的“条件映射类型”是什么

条件映射类型将条件类型和映射类型结合起来,根据条件执行类型转换。它们允许您根据现有类型的属性创建动态类型。这是一个例子:

interface Person {name: string;age: number;
}
type MappedConditional<T> = {[K in keyof T]: T[K] extends number ? string : T[K];
};
const john: MappedConditional<Person> = { name: 'John', age: '30' };

在此示例中,MappedConditional 是一个条件映射类型,它将 Person 的数字属性转换为字符串。

十六、条件类型中“keyof”和“in”关键字的用途是什么

条件类型中的“keyof”关键字用于获取对象类型的键的并集。它允许您以类型安全的方式使用对象的键。“in”关键字检查属性键是否存在于从“keyof”获得的键的并集中。这是一个例子:


type CheckKey<T, K extends keyof T> = K extends 'name' ? true : false;
interface Person {name: string;age: number;
}
type IsNameKey = CheckKey<Person, 'name'>; // Result: true
type IsCityKey = CheckKey<Person, 'city'>; // Result: false

在此示例中,CheckKey 是一个条件类型,用于检查提供的键是否为“name”。

十七、解释 TypeScript 中的“排除”实用程序类型

TypeScript 中的“排除”实用程序类型允许您通过从联合中排除某些类型来创建新类型。它有助于创建联合类型的子集。这是一个例子:

type Color = 'red' | 'green' | 'blue';
type PrimaryColors = Exclude<Color, 'green' | 'blue'>;
const primary: PrimaryColors = 'red'; // Okay
const invalidColor: PrimaryColors = 'green'; // Error: Type '"green"' is not assignable to type 'PrimaryColors'.

在此示例中,PrimaryColors 是一种从颜色联合中排除“绿色”和“蓝色”颜色的类型。

十八、TypeScript 中的“模板文字类型”是什么

TypeScript 中的模板文字类型允许您使用模板文字语法来操作类型中的字符串。它们提供了一种基于字符串模式创建复杂类型的方法。这是一个例子:

type Greeting<T extends string> = `Hello, ${T}!`;
type GreetJohn = Greeting<'John'>; // Result: "Hello, John!"
type GreetJane = Greeting<'Jane'>; // Result: "Hello, Jane!"

在此示例中,Greeting 是一个模板文字类型,它根据提供的名称生成问候语。

十九、解释条件类型中的“infer”关键字

条件类型中的“infer”关键字用于从条件类型中的另一种类型推断出类型。它允许您捕获类型并将其分配给类型变量。这是一个例子:


type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function add(a: number, b: number): number {return a + b;
}
type AddReturnType = ReturnType<typeof add>; // Result: number

在此示例中,ReturnType 是一个条件类型,它使用“infer”关键字推断函数的返回类型。

二十、TypeScript 中的“keyof”和“typeof”关键字有何用途

“keyof”关键字用于获取对象类型的键的并集,“typeof”关键字用于获取值的类型。以下是每个示例:

interface Person {name: string;age: number;
}
type PersonKeys = keyof Person; // Result: "name" | "age"
const john = { name: 'John', age: 30 };
type JohnType = typeof john; // Result: { name: string, age: number }

在第一个示例中,PersonKeys 是表示 Person 接口的键联合的类型。在第二个示例中,JohnType 是表示 john 对象类型的类型。

二一、TypeScript 中的“const 断言”是什么

TypeScript 中的“Const 断言”允许您通知编译器特定的文字表达式应被视为文字而不是扩展类型。这是一个例子:


function getConfig() {const config = {apiUrl: 'https://api.example.com',timeout: 5000,} as const;return config;
}
const config = getConfig();
// config is inferred as:
// {
//   readonly apiUrl: "https://api.example.com";
//   readonly timeout: 5000;
// }

在此示例中,由于 as const 断言,config 对象被视为具有只读属性的常量对象。

二二、TypeScript 中的“私有”和“受保护”访问修饰符是什么

“Private”和“protected”是 TypeScript 中的访问修饰符,用于控制类成员的可见性和可访问性。

class Person {private name: string;protected age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name is ${this.name}, and I am ${this.age} years old.`);}
}
class Employee extends Person {private salary: number;constructor(name: string, age: number, salary: number) {super(name, age);this.salary = salary;}showSalary() {console.log(`My salary is ${this.salary}.`);}
}
const john = new Person('John', 30);
console.log(john.name); // Error: Property 'name' is private and only accessible within class 'Person'.
console.log(john.age); // Error: Property 'age' is protected and only accessible within class 'Person' and its subclasses.
const employee = new Employee('Jane', 25, 50000);
employee.greet(); // Output: "Hello, my name is Jane, and I am 25 years old."
employee.showSalary(); // Output: "My salary is 50000."
console.log(employee.salary); // Error: Property 'salary' is private and only accessible within class 'Employee'.

在此示例中,name 属性具有“private”访问修饰符,age 属性有“protected”访问修饰符。工资属性是 Employee 类私有的。

二三、解释 TypeScript 条件类型中的“keyof T extends K”构造

TypeScript 条件类型中的“keyof T extends K”构造用于使用“extends”关键字根据指定条件过滤对象类型的键。这是一个例子:

type FilterProperties<T, K> = {[P in keyof T as T[P] extends K ? P : never]: T[P];
};
interface Person {name: string;age: number;email: string;
}
type StringProperties = FilterProperties<Person, string>;
// Result: {
//   name: string;
//   email: string;
// }
type NumberProperties = FilterProperties<Person, number>;
// Result: {
//   age: number;
// }
在此示例中,FilterProperties 是一个条件映射类型,它根据值类型过滤 Person 的属性。
二四、TypeScript 中的“mixins”是什么

TypeScript 中的 Mixins 允许您通过将某个类与一个或多个其他类组合来向该类添加行为。它支持代码重用和组合。这是一个 mixin 的例子:


class Printable {print() {console.log(this.toString());}
}
class MyObject {constructor(private name: string) {}toString() {return `Object: ${this.name}`;}
}
interface MyObject extends Printable {}
const myObj = new MyObject('example');
myObj.print(); // Output: "Object: example"
在此示例中,Printable 类充当 mixin,将 print 方法添加到 MyObject 类。
二五、TypeScript 中的“装饰器”是什么

装饰器是 TypeScript 的一项功能,允许您修改类、方法或属性的行为。它们使用 @decoratorName 语法声明并在运行时执行。这是一个简单的类装饰器的示例:

function MyClassDecorator<T extends { new (...args: any[]): {} }>(constructor: T) {return class extends constructor {newProperty = 'decorated property';hello = 'overridden';};
}
@MyClassDecorator
class MyClass {hello: string;constructor() {this.hello = 'world';}
}
const myClassInstance = new MyClass();
console.log(myClassInstance.hello); // Output: "overridden"
console.log((myClassInstance as any).newProperty); // Output: "decorated property"
二六、解释 TypeScript 中的“abstract”关键字

TypeScript 中的“abstract”关键字用于定义抽象类和方法。抽象类不能直接实例化;它们只能被延长。抽象方法在抽象类中没有实现,必须在派生类中实现。这是一个例子:

abstract class Shape {abstract area(): number;
}
class Circle extends Shape {constructor(private radius: number) {super();}area(): number {return Math.PI * this.radius ** 2;}
}
const circle = new Circle(5);
console.log(circle.area()); // Output: 78.53981633974483

在此示例中,Shape 类是一个具有抽象方法 area() 的抽象类。Circle 类扩展了 Shape 类并实现了 area() 方法。

二七、什么是 TypeScript 中的“条件类型”

TypeScript 中的条件类型允许您根据条件执行类型转换。它们使您能够创建依赖于其他类型之间关系的动态类型。这是一个例子:

type IsString<T> = T extends string ? true : false;
type CheckString = IsString<string>; // Result: true
type CheckNumber = IsString<number>; // Result: false

在此示例中,IsString 条件类型检查提供的类型是否为字符串。

二八、TypeScript 中的“模块增强”是什么

TypeScript 中的模块扩充允许您在外部模块中添加新声明或扩展现有声明。当您想要向第三方库添加功能时,它非常有用。这是一个例子:

// Original module in a third-party library
// external-library.d.ts
declare module 'external-library' {export function greet(name: string): string;
}
// Augment the module
// augmentations.d.ts
declare module 'external-library' {export function goodbye(name: string): string;
}
// Usage
import { greet, goodbye } from 'external-library';
console.log(greet('John')); // Output: "Hello, John!"
console.log(goodbye('John')); // Output: "Goodbye, John!"

在此示例中,我们通过添加 goodbye 函数来增强“external-library”模块。

二九、TypeScript 接口中的“索引签名”是什么

TypeScript 接口中的索引签名允许您根据属性的名称定义属性的类型。它们用于定义具有动态属性名称的对象。这是一个例子:


interface Dictionary {[key: string]: number;
}
const data: Dictionary = {apple: 1,banana: 2,
};
const value = data['banana'];
console.log(value); // Output: 2
三十、TypeScript 中的“类型谓词”是什么

TypeScript 中的类型谓词用于缩小条件块中值的类型范围。它们提供了一种执行类型检查并获取更具体类型的方法。这是一个例子:

function isString(value: any): value is string {return typeof value === 'string';
}
function printLength(value: string | number): void {if (isString(value)) {console.log(`The length of the string is ${value.length}.`);} else {console.log(`The value is a number: ${value}`);}
}
printLength('Hello'); // Output: "The length of the string is 5."
printLength(42); // Output: "The value is a number: 42."

在此示例中,isString 函数是一个类型谓词,用于检查值是否为字符串。

相关文章:

前端面试题大合集9----TypeScript

目录 一、TypeScript 中静态类型的概念及其好处 二、如何在 TypeScript 的接口中定义可选属性&#xff1f; 三、解释 TypeScript 中联合类型的概念并提供示例 四、TypeScript 中的类型断言是什么&#xff1f; 五、TS中泛型是什么&#xff1f; 六、解释 TypeScript 中的“…...

Linux:动态库和静态库的编译与使用

目录 1.前言 2.静态链接库 3.静态链接库生成步骤 4.静态链接库的使用 5.动态链接库 6.动态链接库生成步骤 7.动态链接库的使用 8.动态链接库无法加载 9.解决动态链接库无法加载问题 前言 在《MinGW&#xff1a;从入门到链接库》博客中简单介绍了如何编译动态链接库和静态链接库…...

【Pyqt6 学习笔记】DIY一个二维码解析生成小工具

文章目录 Pycharm 配置QtDesignerPyUIC基本模板 代码示例依赖包main.pyscreen_shot_module.pyuntitled.pyuntitled.ui Pycharm 配置 摘自PyQT6的从零开始在Pycharm中配置与使用——蹦跑的蜗牛 pip install PyQt6 PyQt6-toolsQtDesigner File -> Settings -> External …...

关于xilinx srio ip复位问题

关于xilinx srio ip复位问题 语言 &#xff1a;Verilg HDL 、VHDL EDA工具&#xff1a; Vivado 关于xilinx srio ip复位问题一、引言二、FPGA 之间 srio通信复位处理复位时序不同步&#xff1a;SRIO 模块未正确初始化&#xff1a;等待复位完成的时间不足&#xff1a;SRIO 配置…...

04 uboot 编译与调试

新手不需要详细掌握 uboot,只需要知道它是一个什么东西即可,工作中也只是改一些参数而已。 1、uboot 是什么 Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后将 Linux 内…...

【机器学习】机器学习与医疗健康在智能诊疗中的融合应用与性能优化新探索

文章目录 引言机器学习与医疗健康的基本概念机器学习概述监督学习无监督学习强化学习 医疗健康概述疾病预测诊断辅助个性化治疗方案制定 机器学习与医疗健康的融合应用实时健康监测数据预处理特征工程 疾病预测与优化模型训练模型评估 诊断辅助与优化深度学习应用 个性化治疗方…...

在线OJ项目测试(selenium+Junit5)

目录 在线OJ项目测试的思维导图 在线OJ的UI自动化测试 测试一&#xff1a;检查未登录时的页面访问以及一些未登录时的非法操作 测试二&#xff1a;测试注册界面 测试三&#xff1a;测试登录界面 测试四&#xff1a;测试题目列表界面 测试五&#xff1a;测试题目详情界面…...

计算机系统基础笔记(12)——控制

前言 在持续输出ing 一、条件码 1.处理器状态&#xff08;x86-64&#xff0c;部分的&#xff09; 当前程序的执行信息 ◼ 临时数据 ◼ 运行时栈的位置&#xff08;栈顶&#xff09; ◼ 当前代码控制点的位置&#xff08;即将要执行的指令地址&#xff09; ◼ 最近一次指令执…...

使用RedissonClient的管道模式批量查询key

1.场景 遇到了一个场景&#xff0c;在客户给我们推送的数据中&#xff0c;咋1分钟左右&#xff0c;会有相同车辆vehicle 和时间 gpstime一样的数据&#xff0c;这类数据呢&#xff0c;我们认为是重复数据&#xff0c;需要过滤的 把相同 vehicle 和 gpstime 作为key存入到redis中…...

UR机器人通信汇总

文章目录 一、概述二、UR机器人通信2.1UR通信协议2.2 UR通信端口 三、UR机器人通信端口类型3.1 Modbus TCP端口&#xff08;502端口&#xff09;3.2 Dashboard端口&#xff08;29999端口&#xff09;3.3 上位机编程端口&#xff08;30001/30002/30003端口&#xff09;3.3.1 URS…...

AI学习指南机器学习篇-使用ID3算法构建决策树

AI学习指南机器学习篇-使用ID3算法构建决策树 介绍ID3算法 ID3&#xff08;Iterative Dichotomiser 3&#xff09;是一种用于构建决策树的经典机器学习算法。它是由Ross Quinlan于1986年提出的&#xff0c;是一种基于信息论的算法&#xff0c;用于从一组特征中选择最佳特征来…...

React实战(一)初始化项目、配置router、redux、axios

(一)初始化项目 1.安装项目 npx create-react-app 项目名 编译报错&#xff1a; 解决办法&#xff1a;安装最新的babel-preset-react-app npm install babel-preset-react-applatest 2.配置项目 (1)配置文件目录 (2)使用craco配置webpack.config npm install craco/crac…...

高质量 HarmonyOS 权限管控流程

高质量 HarmonyOS 权限管控流程 在 HarmonyOS 应用开发过程中&#xff0c;往往会涉及到敏感数据和硬件资源的调动和访问&#xff0c;而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解&#xff0c;才可以在应用开发中提高效率和避免踩坑。 权限管控了…...

java里面封装https请求工具类2

其他写法 https://blog.csdn.net/weixin_44372802/article/details/132620809?spm1001.2014.3001.5501 encodeJson 是请求参数的密文格式&#xff08;大公司都是要对请求参数加密的&#xff09; ResponseBean 是自己或者对方定义的返回内容参数 public ResponseBean sendByEnc…...

前端面试题日常练-day59 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪个符号用于比较两个值的相等性&#xff1f; a) b) c) d) ! 2. PHP中的预定义变量$_POST用于获取什么类型的数据&#xff1f; a) 用户的输入数据 b) 浏览器发送的请…...

计算机小问题(4)--关闭联想电脑的小组件

打开联想软件管家&#xff0c;关闭即可 &#xff08;今天弄了好久才找到&#xff0c;记录一下&#xff09;...

mac无法读取windows分区怎么办 苹果硬盘怎么读取

对于Mac电脑用户但有Windows系统使用需求的&#xff0c;我们可以通过Boot Camp启动转换助理安装Windows分区这个方案来解决&#xff0c;不过因为两个系统的磁盘格式不同&#xff0c;相应的也会产生一些问题&#xff0c;例如无法正常读取windows分区。下面本文就详细说明mac无法…...

【设计模式】JAVA Design Patterns——State(状态模式)

&#x1f50d;目的 允许对象在内部状态改变时改变它的行为。对象看起来好像修改了它的类。 &#x1f50d;解释 真实世界例子 当在长毛象的自然栖息地观察长毛象时&#xff0c;似乎它会根据情况来改变自己的行为。它开始可能很平静但是随着时间推移当它检测到威胁时它会对周围的…...

Docker搭建可道云

Docker搭建可道云&#xff08;存储&#xff09; 文章目录 Docker搭建可道云&#xff08;存储&#xff09;介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、搭建可道云私有云盘3.1、编写Dockerfile3.2、上传资源到指定目录3.3、查看目录下所有资源 四、构建镜像五、…...

【RISC-V】站在巨人的肩膀上——看开源芯片、软件生态、与先进计算/人工智能/安全的结合

目录 会议议程前言开源处理器芯片的机遇与挑战&#xff0c;孙凝晖&#xff0c;中国工程院院士RISC-V原生基础软件栈&#xff0c;武延军&#xff0c;中国科学院软件研究所RISC-V推动新型架构创新&#xff0c;孟建熠&#xff0c;浙江大学 专题一&#xff1a;开源芯片开源高性能 R…...

test 判断字符串不为空

#!/bin/bash read -p "请输入参数:" name test -z $name if [ $? -eq 1 ]; then echo "入参&#xff1a;$name" else echo "入参为null" fi...

Python数据分析I

目录 注&#xff1a;简单起见&#xff0c;下文中"df"均写为"表名"&#xff0c;"函数"均写为"HS"&#xff0c;"属性"均写为"SX"&#xff0c;"范围"均写为"FW"。 1.数据分析常用开源库 注释…...

Qt5/6使用SqlServer用户连接操作SqlServer数据库

网上下载SQLServer2022express版数据库,这里没啥可说的,随你喜欢,也可以下载Develop版本。安装完后,我们可以直接连接尝试, 不过一般来说,还是下载SQLServer管理工具来连接数据更加方便。 所以直接下载ssms, 我在用的时候,一开始只能用Windows身份登录。 所以首先,我…...

[经验] 场效应管是如何发挥作用的 #知识分享#学习方法#职场发展

场效应管是如何发挥作用的 在现代电子技术领域&#xff0c;场效应管&#xff08;MOSFET&#xff09;是一种重要的半导体元器件。它的作用非常广泛&#xff0c;例如在集成电路中扮演着关键的角色。在本文中&#xff0c;我们将详细探讨场效应管的作用及其在实际应用中的意义。 简…...

数据挖掘--分类

数据挖掘--引论 数据挖掘--认识数据 数据挖掘--数据预处理 数据挖掘--数据仓库与联机分析处理 数据挖掘--挖掘频繁模式、关联和相关性&#xff1a;基本概念和方法 数据挖掘--分类 数据挖掘--聚类分析&#xff1a;基本概念和方法 基本概念 决策树归纳 决策树:决策树是一…...

数据结构篇其六-串

数据结构—串 前置说明 由于学习Java面向对象语言走火入魔&#xff0c;试图在C语言中模拟实现面向对象设计。里面加入了大量的函数指针配合结构体来模拟类中的成员方法 故此篇&#xff0c;亦可称: 面向对象的C语言程序设计 用C语言实现串这种数据结构&#xff0c;并将它应用到…...

队列和栈的实现

本节讲解的队列与栈&#xff0c;如果你对之前的线性和链式结构顺利掌握了&#xff0c;那么下边的队列和栈就小菜一碟了。因为我们会用前两节讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似&#xff0c;队列是先进先出结构(FIFO, first in first out)&…...

lua vm 五: upvalue

前言 在 lua vm 中&#xff0c;upvalue 是一个重要的数据结构。upvalue 以一种高效的方式实现了词法作用域&#xff0c;使得函数能成为 lua 中的第一类值&#xff0c;也因其高效的设计&#xff0c;导致在实现上有点复杂。 函数 (proto) upvalue 构成了闭包&#xff08;closu…...

React Native中集成ArcGIS以显示地图、渲染自定义图层和获取地理信息数据

在您的数据采集上传的应用中集成ArcGIS以显示地图、渲染自定义图层和获取地理信息数据是一项常见需求。下面是如何实现这些功能的详细指南&#xff0c;包括具体步骤和示例代码。 1. 显示地图 原生开发 Android&#xff1a; 使用ArcGIS Android SDK。您需要在AndroidManifest…...

java中的异常-异常处理(try、catch、finally、throw、throws)+自定义异常

一、概述 1、java程序员在编写程序时提前编写好对异常的处理程序&#xff0c;在程序发生异常时就可以执行预先设定好的处理程序&#xff0c;处理程序执行完之后&#xff0c;可以继续向后执行后面的程序 2、异常处理程序是在程序执行出现异常时才执行的 二、5个关键字 1、tr…...