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

TypeScript - 利用GPT辅助学习

TypeScript

    • 一、基础
      • 1. 安装 TypeScript
      • 2. 创建你的第一个 TypeScript 文件
      • 3. 编译 TypeScript 代码
      • 4. 变量声明与类型注解
      • 5. 函数与类型注解
      • 6. 总结
    • 二、进阶
      • 常用类型
        • 1. 类型别名
        • 2. 对象类型
        • 3. 类型断言
        • 4.`typeof` 操作符
      • 高级类型
        • 1. 类
        • 2. 交叉类型
        • 3. 泛型与 `keyof`
        • 4. 索引签名类型与 索引查询类型
        • 5 映射类型
        • 6.总结
    • 三、文件类型
      • 1. `.ts` 文件 — TypeScript 的“主战场”
        • 用途:编写程序代码的地方。
        • 示例:
      • 2. `.d.ts` 文件 — 类型声明的超级英雄
        • 用途:为 JS 提供类型信息
        • 示例:
      • 3.`.ts` 与 `.d.ts` 文件的关键区别
      • 4.如何使用 `.d.ts` 文件
      • 5.总结:TS 里的 `.ts` 和 `.d.ts` 文件

本篇由GPT辅助学习TypeScript而来的,仅为简单学习所创,若有疑惑还请去 TypeScript官网进一步了解

一、基础

1. 安装 TypeScript

在开始之前,你需要在你的电脑上安装 TypeScript 编译器。只需要几个步骤,就能拥有它。

步骤 1:安装 Node.js 和 npm 如果你还没有安装 Node.js,快去官网下载安装。Node.js 附带的 npm(包管理器)是我们接下来安装 TypeScript 的工具。

步骤 2:通过 npm 安装 TypeScript

npm install -g typescript

这样就将 TypeScript 安装到了你的机器上。-g 表示全局安装,可以在任何地方使用 tsc 命令。

步骤 3:检查安装是否成功

安装完后,输入以下命令检查 TypeScript 版本:

tsc --version

如果看到版本号,就表示安装成功!🎉


2. 创建你的第一个 TypeScript 文件

步骤 1:创建文件

用你喜欢的文本编辑器(如 VS Code、Sublime Text 等),创建一个文件,命名为 hello.ts。这个 .ts 后缀标志着这是一个 TypeScript 文件。

步骤 2:编写代码

hello.ts 文件里,写一些简单的 TypeScript 代码:

let message: string = "Hello, TypeScript!";
console.log(message);

3. 编译 TypeScript 代码

在命令行中,切换到包含 hello.ts 的目录,然后运行以下命令将 TypeScript 代码编译成 JavaScript:

tsc hello.ts

运行后,你会看到同目录下生成了一个 hello.js 文件,内容类似这样:

var message = "Hello, TypeScript!";
console.log(message);

步骤 3:运行 JavaScript 代码

你可以使用 Node.js 来运行编译后的 JavaScript 文件:

node hello.js

你应该会看到控制台输出:

Hello, TypeScript!

4. 变量声明与类型注解

在 TypeScript 中,变量的类型不再是模糊不清的了。你可以在声明变量时指定它们的类型。这是 TypeScript 的超级武器之一!

基本类型

let age: number = 30; // 数字类型
let names: string = "TypeScript"; // 字符串类型
let isActive: boolean = true; // 布尔类型

数组

数组的类型可以用 [] 来表示:

let numbers: number[] = [1, 2, 3]; // 数字数组
let fruits: string[] = ["apple", "banana", "cherry"]; // 字符串数组

或者使用 Array<type>

let numbers: Array<number> = [1, 2, 3];

元组

元组是一个固定长度和类型的数组:

let person: [string, number] = ["Alice", 25]; // 元组,第一个元素是字符串,第二个是数字

任意类型

有时候,你不确定变量的类型,可以使用 any 来表示:

let anything: any = "Hello"; // 类型可以是任何类型
anything = 42; // 现在是数字了
anything = true; // 现在是布尔类型了

字面量

用于约束变量的值为特定字符串、数字或布尔值的类型。

let direction: "up" | "down" = "up"; // 只能是 "up" 或 "down"
direction = "down"; // OK
direction = "left"; // 错误:不能赋值 "left"

枚举类型(Enums)

枚举用于定义一组具名的常数,通常用于表示一组有限的状态或选项。

enum Direction {Up = "UP",Down = "DOWN",Left = "LEFT",Right = "RIGHT",
}let move: Direction = Direction.Up;  // 使用枚举

未知类型

如果你想声明一个不确定的变量类型,但又想要一些检查,可以使用 unknown,它比 any 更安全:

let value: unknown = "hello";
value = 42; // 也可以是数字

5. 函数与类型注解

函数也可以定义参数类型和返回类型。这就是 TypeScript 的类型检查功能,能提前警告你代码中的潜在问题。

函数声明

function greet(name: string): string {return `Hello, ${name}!`;
}let greeting = greet("TypeScript");
console.log(greeting); // 输出 "Hello, TypeScript!"

可选参数

你也可以设置参数为可选的,只需要在参数后加一个问号:

function greet(name: string, age?: number): string {if (age) {return `Hello, ${name}! ${age} `;}return `Hello, ${name}!`;
}console.log(greet("Alice")); // 输出 "Hello, Alice!"
console.log(greet("Bob", 18)); // 输出 "Hello, Bob! 18"

6. 总结

你现在已经有了一个 TypeScript 文件,成功安装了 TypeScript 编译器,并了解了如何声明变量、定义类型和编写简单的函数。是不是感觉有点厉害了?😎

接下来,你可以探索更多高级功能,如 类、接口、泛型、模块 等等,但今天我们就先从基础开始,让你顺利地飞起来!🚀

二、进阶

让我们继续扩展 TypeScript 的神奇世界,一口气包括更多常用类型、类型别名、函数类型、对象类型等,也涵盖一些高级类型,让你的 TypeScript 技能更上一层楼。准备好了吗?我们开始!🚀

常用类型

1. 类型别名

类型别名(Type Aliases)用来给一个类型取个别名,可以让你的代码更简洁易懂。

type StringOrNumber = string | number;  // String 或 Number 类型
let data: StringOrNumber = "hello";  // 可以是 string 或 number
data = 42;  // 也可以是数字
2. 对象类型

对象类型(Object Types)是用来描述对象的结构,确保对象中的每个属性都有合适的类型。

type Person = {name: string;age: number;
};const person: Person = {name: "Alice",age: 30,
};
let person:{name: string;age: number;} ={name: "Alice",age: 30,
}
3. 类型断言

类型断言(Type Assertions)告诉 TypeScript 编译器,开发者“知道”某个变量的确切类型,通常用于从更宽泛的类型转换为更精确的类型。

let message: any = "Hello, TypeScript!";
let strLength: number = (message as string).length;  // 类型断言为 string
4.typeof 操作符

typeof 用于获取变量的类型,通常用于与 类型保护类型推论 配合使用。

let name = "Alice";
let nameType: typeof name = "Bob";  // 类型为 string

高级类型

1. 类

类(Class)是面向对象编程的重要组成部分,TypeScript 中的类提供了更多的功能和类型检查。

class Animal {name: string;constructor(name: string) {this.name = name;}speak() {console.log(`${this.name} makes a sound.`);}
}class Dog extends Animal {speak() {console.log(`${this.name} barks.`);}
}const dog = new Dog("Buddy");
dog.speak(); // 输出 "Buddy barks."

在 TypeScript 中,两个类型如果结构相同,它们是兼容的。

interface Animal {name: string;
}class Dog {name: string;constructor(name: string) {this.name = name;}
}let dog: Dog = new Dog("Buddy");
let animal: Animal = dog;  // 兼容,因为 Dog 类符合 Animal 接口的结构
2. 交叉类型

交叉类型(Intersection Types)是将多个类型合并为一个类型,合并后的类型包含了所有类型的成员。

type Person = {name: string;age: number;
};type Employee = {jobTitle: string;
};type EmployeePerson = Person & Employee; // 交叉类型const employee: EmployeePerson = {name: "Alice",age: 30,jobTitle: "Developer",
};
3. 泛型与 keyof

泛型(Generics)允许你定义可以接受任意类型的函数、类、接口等,确保类型安全。

function identity<T>(arg: T): T {return arg;
}let result = identity<string>("Hello!");  // 类型是 string
let numResult = identity<number>(42);  // 类型是 number

keyof 用来提取某个对象的所有键,并形成一个类型。

interface Person {name: string;age: number;
}type PersonKeys = keyof Person;  // "name" | "age"
4. 索引签名类型与 索引查询类型

索引签名类型(Index Signature Types) 允许你定义可以动态访问的对象类型。

interface Dictionary {[key: string]: string;
}const dict: Dictionary = {hello: "world",foo: "bar",
};

索引查询类型(Index Access Types) 允许你查询对象类型的某个属性的类型。

type NameType = Person["name"];  // 类型是 string
5 映射类型

映射类型(Mapped Types)允许你根据某个类型创建一个新类型,常用于批量修改对象的属性。

type ReadOnly<T> = {readonly [K in keyof T]: T[K];
};interface Person {name: string;age: number;
}const person: ReadOnly<Person> = { name: "Alice", age: 30 };
// person.name = "Bob";  // 错误,属性是只读的

也可以结合 in 操作符来创建新的类型。

type PartialPerson = {[K in keyof Person]?: Person[K];  // 将 Person 中的所有属性变为可选
};

6.总结

现在你已经有了 TypeScript 的常用类型、类型别名、函数类型、对象类型等的全面了解,还可以更深入地理解高级类型如类、交叉类型、泛型、映射类型等。通过这些强大的特性,TypeScript 能够帮助你编写更加灵活、安全且可维护的代码。是不是已经迫不及待要开始动手写更复杂的 TypeScript 项目了呢?🎉

三、文件类型

TypeScript 是个聪明的小家伙,它通过 .ts.d.ts 两种文件类型让我们编写代码时更加得心应手!让我们一个个捋顺清楚,看看它们之间的“微妙”区别吧!🚀


1. .ts 文件 — TypeScript 的“主战场”

.ts 文件就是 TypeScript 的本体,里面包含了你写的所有实现代码。你写的函数、类、变量,甚至所有的类型注解都在这里。可以说它是 TypeScript 的灵魂,是我们“战斗”的地方!💥

用途:编写程序代码的地方。
  • 你最常用的文件类型——这里写代码!
  • 可以写任何可执行的 TypeScript 代码——函数、类、对象、你想要的一切都在这里!
  • 编译成 JavaScript,跑在浏览器或 Node.js 环境中。🎯
示例:
// hello.ts — 你开始写的第一行 TypeScript 代码!🎉function greet(name: string): string {return `Hello, ${name}!`;  // 就这么简单,带着热情!
}console.log(greet("Alice"));  // 输出: Hello, Alice!

小贴士

  • 运行 tsc hello.ts 之后,你会发现编译器生成了 hello.js 文件,这个文件就是最终执行的 JavaScript 代码。
  • 你可以通过 node hello.js 来运行它,看看效果如何!🌟

2. .d.ts 文件 — 类型声明的超级英雄

.d.ts 文件就像是 TypeScript 的“隐形助手”——它不会参与执行,但却能让你的代码在幕后更有条理。它专门用来给你的 JavaScript 提供类型信息,帮助 TypeScript 理解“这个东西应该是什么类型”!😎

用途:为 JS 提供类型信息
  • 为外部库(那些没有内置 TypeScript 类型的 JavaScript 库)提供类型定义。👑
  • 你可以用它来描述 JavaScript 代码的结构,确保 TypeScript 编译器能够正确识别并提供类型检查。📚
  • 不包含实际实现代码,只是类型的“地图”。✨
示例:

假设你在用某个 JavaScript 库,里面有个 greet 函数,但它没有 TypeScript 类型信息。怎么办?没关系,来个 .d.ts 文件吧!

// greet.d.ts — 类型定义开始!declare function greet(name: string): string;  // 只定义函数签名,没有实现!

这个 .d.ts 文件告诉 TypeScript:“嘿,greet 函数是存在的,而且它接受一个字符串参数并返回一个字符串!”这样 TypeScript 就能通过这个类型信息来为你提供智能提示和类型检查了!✨


3..ts.d.ts 文件的关键区别

特性.ts 文件.d.ts 文件
目的编写 TypeScript 可执行代码,编译成 JavaScript 运行提供类型声明,告诉 TypeScript 其他代码的结构和类型
内容包含实现代码(函数、类、逻辑等)仅包含类型定义,没有实现代码
编译编译成 .js 文件不编译成 JavaScript 文件,仅用于类型检查
场景编写程序的核心逻辑、功能等为第三方库提供类型定义,或为 JavaScript 代码添加类型定义

4.如何使用 .d.ts 文件

  1. 为第三方库添加类型定义

你在使用一个没有 TypeScript 类型定义的 JavaScript 库时,怎么办?别担心!只需要通过 @types 包来引入它们的类型声明文件!🎉

举个例子,如果你在用 Lodash(一个 JavaScript 的工具库),并且想用它的类型定义:

npm install @types/lodash

这个命令会安装 Lodash 的类型声明文件,TypeScript 就会知道 Lodash 是怎样工作的,让你享受到类型检查和代码补全的好处!👏

手动为 JavaScript 写声明文件

如果你自己有一些 JavaScript 文件,也可以自己写 .d.ts 文件来为它们添加类型信息。比如你写了一个 utils.js 文件,你可以写一个 utils.d.ts 来描述它的类型:

// utils.d.tsdeclare function formatDate(date: Date): string;  // 格式化日期的函数
declare function sum(a: number, b: number): number;  // 加法函数MyButton: typeof MyButton;

这样 TypeScript 就知道了 formatDatesum 函数的类型,不用再怕类型错误了!💪


5.总结:TS 里的 .ts.d.ts 文件

  • .ts 文件:你的主战场,里面的代码会被编译为 JavaScript 并运行。它包含了你所有的功能实现,类型注解,甚至你的勇气!🚀
  • .d.ts 文件:类型声明的超级英雄,它让 TypeScript 知道其他 JavaScript 文件的类型结构,确保你的代码在没有实际实现的情况下也能进行类型检查。🦸‍♂️

这两种文件的结合,让 TypeScript 能够发挥最大的优势,既保证代码的灵活性,又确保类型安全。记住,.ts 文件用来写逻辑,.d.ts 文件用来给外部代码“写传单”!😏

相关文章:

TypeScript - 利用GPT辅助学习

TypeScript 一、基础1. 安装 TypeScript2. 创建你的第一个 TypeScript 文件3. 编译 TypeScript 代码4. 变量声明与类型注解5. 函数与类型注解6. 总结 二、进阶常用类型1. 类型别名2. 对象类型3. 类型断言4.typeof 操作符 高级类型1. 类2. 交叉类型3. 泛型与 keyof4. 索引签名类…...

Node.js 与 JavaScript 是什么关系

JavaScript 是一种编程语言&#xff0c;而 Node.js 是 JavaScript 的一个运行环境&#xff0c;它们在不同的环境中使用&#xff0c;具有一些共同的语言基础&#xff0c;但也有各自独特的 API 和模块&#xff0c;共同推动着 JavaScript 在前后端开发中的广泛应用。 一、基础语言…...

Spring MVC:设置响应

目录 引言 1. 返回静态页面 1.1 Spring 默认扫描路径 1.2 RestController 1.2.1 Controller > 返回页面 1.2.2 ResponseBody 2. 返回 HTML 2.1 RequestMapping 2.1.1 produces(修改响应的 Content-Type) 2.1.2 其他属性 3. 返回 JSON 4. 设置状态码 4.1 HttpSer…...

c#实现当捕获异常时自动重启程序

首先&#xff0c;需要说明这并不是一个推荐的做法&#xff0c;只有在你确实有这样的需求时才考虑这么做。 以下是AI的回答&#xff0c;为什么不推荐这么做&#xff0c;供参考。 在C#中&#xff0c;如果你在catch语句中尝试重启程序自身&#xff0c;可能会遇到以下几个问题&…...

游戏引擎学习第84天

仓库:https://gitee.com/mrxiao_com/2d_game_2 我们正在试图弄清楚如何完成我们的世界构建 上周做了一些偏离计划的工作&#xff0c;开发了一个小型的背景位图合成工具&#xff0c;这个工具做得还不错&#xff0c;虽然是临时拼凑的&#xff0c;但验证了背景构建的思路。这个过…...

Python----Python高级(文件操作open,os模块对于文件操作,shutil模块 )

一、文件处理 1.1、文件操作的重要性和应用场景 1.1.1、重要性 数据持久化&#xff1a; 文件是存储数据的一种非常基本且重要的方式。通过文件&#xff0c;我们可 以将程序运行时产生的数据永久保存下来&#xff0c;以便将来使用。 跨平台兼容性&#xff1a; 文件是一种通用…...

“AI 大模型内容安全审核软件系统:守护网络世界的卫士

在如今这个信息爆炸的互联网时代&#xff0c;网络上的内容那是五花八门、层出不穷。这时候&#xff0c;咱就得靠 AI 大模型内容安全审核软件系统来给咱把把关了。 咱就说社交媒体平台吧&#xff0c;每天都有海量的用户在上面发布文字、图片、视频啥的。要是没有一个靠谱的审核系…...

快速入门Python的异步库:asyncio

目录 异步 Python asyncio 1. async 关键字 2. await 关键字 3. asyncio.run() 4. asyncio.sleep() 5. 协程 程序执行流程 可以被等待的异步 协程 任务 Futures 任务 asyncio.create_task() await 和任务结果 Reference 异步 我们首先先来谈谈异步&#xff0c;…...

大美祖国-使用Java盘点那些在地名中出现最多的汉字

目录 前言 一、地名数据准备 1、全国地名数据 二、使用Java进行汉字统计 1、汉字数据统计 2、汉字分割统计 三、浅谈地名汉字名次及其意义 1、山、城、江、河 2、安、平、宁 3、地名中的方位 四、总结 前言 在中国这片古老而又年轻的土地上&#xff0c;地名不仅仅是地…...

华为OD机试E卷 --羊、狼、农夫过河--24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析JS算法源码Java算法源码python算法源码c算法源码c++算法源码题目描述 羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。 要求求出不损失羊情况…...

Java - WebSocket

一、WebSocket 1.1、WebSocket概念 WebSocket是一种协议&#xff0c;用于在Web应用程序和服务器之间建立实时、双向的通信连接。它通过一个单一的TCP连接提供了持久化连接&#xff0c;这使得Web应用程序可以更加实时地传递数据。WebSocket协议最初由W3C开发&#xff0c;并于2…...

JavaWeb开发(十五)实战-生鲜后台管理系统(二)注册、登录、记住密码

1. 生鲜后台管理系统-注册功能 1.1. 注册功能 &#xff08;1&#xff09;创建注册RegisterServlet&#xff0c;接收form表单中的参数。   &#xff08;2&#xff09;service创建一个userService处理业务逻辑。   &#xff08;3&#xff09;RegisterServlet将参数传递给ser…...

【深度学习】利用Java DL4J 训练金融投资组合模型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...

【MySQL篇】事务的认识以及四大特性

何为事务&#xff1f; 事务&#xff08;Transaction&#xff09;是指一组操作的集合&#xff0c;这些操作要么全部执行成功&#xff0c;要么全部不执行。事务通常用于保证数据库的一致性、完整性和可靠性&#xff0c;确保数据的完整性与正确性。 有效避免部分执行&#xff0…...

CSS 网络安全字体

适用于 HTML 和 CSS 的最佳 Web 安全字体 下面列出了适用于 HTM L和 CSS 的最佳 Web 安全字体&#xff1a; Arial (sans-serif)Verdana (sans-serif)Helvetica (sans-serif)Tahoma (sans-serif)Trebuchet MS (sans-serif)Times New Roman (serif)Georgia (serif)Garamond (se…...

实战演示:利用ChatGPT高效撰写论文

在当今学术界&#xff0c;撰写论文是一项必不可少的技能。然而&#xff0c;许多研究人员和学生在写作过程中常常感到困惑和压力。幸运的是&#xff0c;人工智能的快速发展为我们提供了新的工具&#xff0c;其中ChatGPT便是一个优秀的选择。本文将通过易创AI创作平台&#xff0c…...

显卡(Graphics Processing Unit,GPU)架构详细解读

显卡架构主要分为两大类&#xff1a;GPU 核心架构&#xff08;也称为图形处理单元架构&#xff09;和显卡的其他组件&#xff08;如内存、控制器、输出接口等&#xff09;。本篇文章将对显卡架构进行详细分析&#xff0c;重点介绍 GPU 核心架构、显卡计算单元、显存结构、显卡管…...

OpenCV相机标定与3D重建(63)校正图像的畸变函数undistort()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 转换图像以补偿镜头畸变。 该函数通过变换图像来补偿径向和切向镜头畸变。 此函数仅仅是 initUndistortRectifyMap&#xff08;使用单位矩阵 R…...

人工智能-机器学习之多分类分析(项目实战二-鸢尾花的多分类分析)

Softmax回归听名字&#xff0c;依然好像是做回归任务的算法&#xff0c;但其实它是去做多分类任务的算法。 篮球比赛胜负是二分类&#xff0c;足球比赛胜平负就是多分类 识别手写数字0和1是二分类&#xff0c;识别手写数字0-9就是多分类 Softmax回归算法是一种用于多分类问题…...

【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO

文章目录 前言&#x1f30d; 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术&#x1f341;3.1关键特性&#x1f341;3.2配置选项&#x1f341;3.3使用示例 ❄️4. 连接池之Druid技术&#x1f341; 4.1主要特性&#x1f341; 4.2 配置选项…...

【Envi遥感图像处理】006:影像融合(高光谱+多光谱)的方法

文章目录 一、图像融合概述二、加载数据三、图像融合操作四、结果比对五、高光谱与多光谱一、图像融合概述 图像融合是指将不同类型传感器的影像进行融合,既能使图向具有较高的空间分辨率,又具有多光谱的特性。 二、加载数据 三、图像融合操作 在ENvi中,图像融合使用的工具…...

C语言内存之旅:从静态到动态的跨越

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一 动态内存管理的必要性二 动态…...

Git本地搭建

Git本地搭建 &#xff08;项目突然不给创建仓库了&#xff0c;为了方便管理项目只能自己本地搭建git服务&#xff09; 为了在本地搭建Git环境并实现基本的Git操作&#xff0c;步骤如下&#xff1a; 安装Git软件 ‌Windows‌&#xff1a;从Git官方网站下载并安装适用于Windows…...

电商|基于java的农业电商系统(源码+数据库+文档)

农业电商系统 目录 基于java的农业电商系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 前台&#xff1a; 后台&#xff1a; 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️…...

c语言分支和循环

文章目录 前言 一、分支结构 if语句 switch语句 三目运算符 二、循环结构 while循环 do-while循环 for循环 循环嵌套 循环控制语句 总结 前言 分支和循环是C语言中非常重要的控制结…...

大象机器人发布首款穿戴式数据采集器myController S570,助力具身智能数据收集!

myController S570 具有较高的数据采集速度和远程控制能力&#xff0c;大大简化了人形机器人的编程。 myController S570 是一款可移动的轻量级外骨骼&#xff0c;具有 14 个关节、2 个操纵杆和 2 个按钮&#xff0c;它提供高数据采集速度&#xff0c;出色的兼容性&#xff0c…...

【HarmonyOS NEXT】华为分享-碰一碰开发分享

关键词&#xff1a;鸿蒙、碰一碰、systemShare、harmonyShare、Share Kit 华为分享新推出碰一碰分享&#xff0c;支持用户通过手机碰一碰发起跨端分享&#xff0c;可实现传输图片、共享wifi等。我们只需调用系统 api 传入所需参数拉起对应分享卡片模板即可&#xff0c;无需对 U…...

基于python+Django+mysql鲜花水果销售商城网站系统设计与实现

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…...

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 Lin…...

2025寒假备战蓝桥杯01---朴素二分查找的学习

文章目录 1.暴力方法的引入2.暴力解法的思考 与改进3.朴素二分查找的引入4.朴素二分查找的流程5.朴素二分查找的细节6.朴素二分查找的题目 1.暴力方法的引入 对于下面的这个有序的数据元素的组合&#xff0c;我们的暴力解法就是挨个进行遍历操作&#xff0c;一直找到和我们的这…...

AI时代:弯道超车的新思维与实践路径

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…...

HunyuanDiT代码笔记

HunyuanDiT 是由腾讯发布的文生图模型&#xff0c;适配中英双语。 在模型方面的改进&#xff0c;主要包括&#xff1a; transformer结构text encoderpositional encoding Improving Training Stability To stabilize training, we present three techniques: We add layer nor…...

C++: Dtrees:load(constg String filepath, const String nodeName)中nodeName参数含义

1. nodeName 的作用 当你保存模型时&#xff0c;整个决策树会被序列化到一个 XML 或 YAML 文件中。nodeName 是加载时指定的一个逻辑路径&#xff0c;用于从文件中找到某个节点或子结构&#xff0c;而不是存储在文件中的字段。如果你不指定 nodeName&#xff0c;OpenCV 默认会…...

项目练习:若依后台管理系统-后端服务开发步骤(springboot单节点版本)

文章目录 1、用Maven搭建项目脚手架&#xff0c;父子工程依赖。2、引入SpringBoot Web容器依赖3、引入Mybatisdruid依赖4、实现接口查询数据5、整合logback日志功能 1、用Maven搭建项目脚手架&#xff0c;父子工程依赖。 root模块的pom添加plugin配置 <build><plugins…...

Ubuntu安装docker

snap install docker # version 27.2.0, or apt install podman-docker # version 3.4.4ds1-1ubuntu1.22.04.2 apt install docker.io # version 24.0.7-0ubuntu2~22.04.1 我应该安装哪一个&#xff0c;部署企业级应用? 在部署企业级应用时&#xff0c;选择合适的容器化…...

windows11下 podman-desktop 复制插件文件 到 RabbitMQ 容器内,并启用

目的&#xff1a; 刚启用的 RabbitMQ 容器&#xff0c;发现没有rabbitmq_delayed_message_exchange 插件&#xff0c;开始手动安装 官网 https://www.rabbitmq.com/community-plugins 或 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange 下载rabbitmq_delay…...

Quickstart C++ with cmake, visualstudio | CPP

本文属于 C 系列文章&#xff0c;下一篇文章见 Quick get started with vcpkg, windows visual studio | CPP 目录 cmake-visualstudio-quickstartDepsConfigureBuild with CLILINKS cmake-visualstudio-quickstart https://github.com/hailiang-wang/cmake-visualstudio-quic…...

惊叹数据结构之美,品味排序算法之妙:对四大排序的详细介绍

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 正文一、冒泡排序&#xff08;Bubble Sor…...

机器学习——什么是代价函数? 下

“上次课讲了机器学习的模型表示,讲了一个线性模型的例子,那怎样在可能的拟合直线里选择一条最合适的呢?有没有数学的方法让这个直线合适还是不合适变得可以量化呢?这就要说代价函数了。” 本次课前半段内容非常简单,带领我们一起复习初中平面几何的知识,后半段给出了代价…...

Ubuntu本地部署网站

目录 1.介绍 2.安装apache 3.网页升级 1.介绍 网站其实就相当于一个文件夹&#xff0c;用域名访问一个网页&#xff0c;就相当于访问了一台电脑的某一个文件夹&#xff0c;在网页中看见的视频&#xff0c;视频和音乐其实就是文件夹里面的文件。为什么网页看起来不像电脑文件夹…...

hydra破解密码

hydra九头蛇是常用的密码破解工具 1、破解centos ssh密码 hydra -l root -P password.txt ssh://192.168.1.107:2222 hydra -l root -P password.txt -s 2222 192.168.1.107 ssh2、破解ftp hydra -l allen -P e:\aa.txt ftp://127.0.0.1 hydra -l allen -P e:\aa.txt ftp:…...

华为OD机试E卷 --字符串变换最小字符串 --24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析JS算法源码java算法源码python算法源码c算法源码c算法源码 题目描述 给定一个字符串s&#xff0c;最多只能进行一次变换&#xff0c;返回变换后能得到的最小字符串&#xff08;按照字典序进行比较&#xff09;。 变换规则&#…...

用户中心项目教程(二)---umi3的使用出现的错误

目录 1.情况的说明 2.遇到的问题 1&#xff09;第一个问题-关于npx的使用 2&#xff09;第二个问题--unsupport问题 3&#xff09;第三个收获--nodejs安装问题 4&#xff09;第四个收获---nvm下载问题 5&#xff09;第五个问题--尚未解决的问题 3.个人总结 1.情况的说明…...

具身智能新突破!Physical Intelligence推出机器人动作tokenizer,训练提速5倍

具身智能&#xff0c;是人工智能&#xff08;AI&#xff09;行业的下一个浪潮。如何有效训练 Transformers 模型来控制具身机器人&#xff0c;是当前亟需要解决的难题&#xff0c;尤其是对于更复杂、需要精确和高频控制的精巧技能&#xff0c;现有的视觉-语言-动作&#xff08;…...

Unity 学习指南与资料分享

Unity学习资料 Unity学习资料 Unity学习资料 Unity 作为一款强大的跨平台游戏开发引擎&#xff0c;在游戏开发及实时 3D 内容创作领域占据着重要地位。它功能丰富、易于上手&#xff0c;支持多平台发布&#xff0c;为开发者提供了广阔的创作空间。下面为你带来全面的 Unity 学…...

react什么时候用箭头函数,什么时候不需要

最近从vue项目转到react&#xff0c;太久没写了。遇到了一些卡住的问题&#xff0c;记录一下。 在 JavaScript 和 React 开发中&#xff0c;箭头函数&#xff08;Arrow Functions&#xff09;的使用主要取决于上下文、代码简洁性和特定需求。以下是关于何时使用箭头函数以及何时…...

软考中级复习篇章:数据结构部分的复习

软考中级快速通过篇章&#xff1a;数据结构部分的复习 一、引言 在软考中级的备考过程中&#xff0c;数据结构是极为重要的一个部分。它不仅是计算机科学的基础&#xff0c;也是软考中考查的重点知识领域。扎实掌握数据结构相关内容&#xff0c;对于顺利通过软考中级考试起着…...

【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)

文章目录 S09L40 Exercise 11 - Vim Settings and the Vimrc File1 训练目标2 操作指令2.1. 打开 vimrc-sample 文件2.2. 尝试各种选项与设置2.3. 将更改内容保存到 vimrc-sample 文件2.4. 将文件 vimrc-sample 的内容复制到寄存器2.5. 创建专属 vimrc 文件2.6. 对于 Mac、Linu…...

Spring Boot 整合 PageHelper 实现分页功能

在开发 Web 应用时&#xff0c;分页功能几乎是必不可少的。Spring Boot 提供了强大的功能来简化开发&#xff0c;而 PageHelper 则是一个优秀的 MyBatis 分页插件&#xff0c;可以极大地简化分页查询的代码。本文将介绍如何在 Spring Boot 项目中整合 PageHelper&#xff0c;并…...

Redis和MongoDB的区别

前言 在项目选型阶段&#xff0c;MongoDB被选中主要是基于其处理大规模数据集的能力&#xff0c;而当时并未深入探讨其他替代方案。此前&#xff0c;Redis被用于管理少量但访问频繁的热数据。目前&#xff0c;项目采用MongoDB存储百万级数据&#xff0c;预计未来数据量将增长至…...