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

TypeScript(一):TypeScript基本理解

TypeScript基本理解

为什么使用TS

  • JavaScript发展至今,没有进行数据类型的验证
  • 而我们知道,在编程阶段,错误发现的越早越好
  • 而TS就解决了JS的这个问题

认识TypeScript

  • TypeScript是拥有类型的JavaScript超级,它可以编译成普通、干净。完整的JavaScript代码
  • 我们可以将TypeScript理解成为 加强版的JavaScript
  • **JavaScript拥有的特性,TypeScript全部都是支持的,**并且,紧随着ECMAScript的标准
  • Typescript在 实现新特性的同时,总是保持和ES标准的同步甚至领先
  • TypeScript最终会被编译成JavaScript代码

TypeScript特点

  • 始于JavaScript,归于JavaScript
  • TypeScript是一个强大的工具,用于构建大型项目
  • 拥有先进的JavaScript

TypeScript的编译环境

  • 前面我们知道TS最终会转成JS代码的
  • 那么TS代码运行也需要响应的环境
  • npm install typescript -g全局安装TypeScript代码运行环境
  • 创建 index.ts文件
//let 变量名称:变量类型 = 
//String:大写的是JavaScript中的包装类,new String()
//string:小写的是TypeScript定义变量的类型
let message: string = "123"
console.log(message)
  • 而后通过 tsc index.ts将ts文件编译成js文件,进行使用

TypeScript的运行环境

  • 若每次使用 tsc命令,将ts转成js,比较麻烦
  • 我们也可以使用ts-node直接运行
  • 使用ts-node需要全局安装两个包
    • npm install ts-node -g
    • npm install tslib @type/node -g
  • 而后运行 ts-node index.ts即可

变量定义

  • 上面的例子中,我们对变量定义进行了说明
//   let/const 变量名称:数据类型(类型注解) = 赋值
let message:string = "hello"  //string就是类型注解

变量的类型推导(推断)

  • 在实际书写过程中,我们无需为每一个变量,指定数据类型
  • 因为 TypeScript会根据赋值的内容,自动推导出变量的类型
let message = "hello"

image.png

  • 而const声明的变量,则是 字面量类型
const message:"hello" = "hello"
const num:1.88 = 1.88

image.png

image.png

JavaScript和TypeScript的数据类型

  • TypeScript是JavaScript的一个超集
    • JS拥有的特性TS全部拥有

image.png

JavaScript类型-number类型

  • 数字类型是开发中经常用到的类型,不区分整数型和浮点数类型
let num:number = 1.88

JavaScript类型-boolean类型

let flag:boolean = true

JavaScript类型-string类型

let str:string = "hello"

JavaScript类型-Array类型

  • 明确指定<数组>的类型注解

    • 1.string[]:数组类型,并且数组中存放的字符串类型
    let names:string[] = ['1','2']
    
    • 2.Array与上述表述的一致,只是另外一种写法
    let num:Array<number> = [1,2,3]
    

JavaScript类型-Object类型

//类型注解,要和实际的内容相对应,否则就会报错
let obj:{name:string,age:number
} = {name:"zhangcheng",age:18
}
  • 但是不能写成以下写法
    • 下面的写法相当于是一个空对象,在后续的操作中,都会报错
let obj:object = {name:"zhangcheng"
}

JavaScript类型-null和undefined类型

let n: null = null
let unde:undefined = undefined

函数的类型

函数的参数类型
  • 在定义函数的时候,对于传入的参数,我们可以指定传入参数的类型
  • 同时参数的个数也会限制死
function sum(num1:number,num2:number){}
函数的返回值类型
  • 通常情况下,是不用对函数的返回值进行类型的注解,因为会自动推导出来
  • 但是明确的写明类型注解,会有助于代码的阅读性
    • 通常在小括号最后对函数的返回值进行类型注解
function sum(num1:number,num2:number):number{}
匿名函数的参数
  • 针对于匿名函数,会根据上下文自动推导出参数的类型,不需要特别的去指定
let arr = ["zhangsan","lisi"]
arr.forEach((item,index,arr)=>{})
//item,index,arr属于上下文类型,不需要特殊的指定
对象类型与函数类型联合使用
//参数名称:{属性1:类型注解,属性2:类型注解,....}
function printPoint(ponit: { x: number, y: number }) {console.log(ponit.x,ponit.y);
}//传入参数的时候,一定要包含设定好的属性
printPoint({x:100,y:200})
  • 同时,有另外一种写法
type ponitType = {x: numbery: number//z表示可选属性,可以传入,可以不传入z?:number
}//参数名称:{属性1:类型注解,属性2:类型注解,....}
function printPoint(ponit: ponitType) {console.log(ponit.x,ponit.y);
}//传入参数的时候,一定要包含设定好的属性
printPoint({x:100,y:200})

TypeScript类型-any类型

  • 在某些情况下,我们无法确定一个变量的类型,并且这个变量的类型可能会发生变化,可以使用any类型
  • 对于 any类型的变量,我们可以对变量赋值任何值
let a:any = "why"
a = 123
  • 一般在数据类型十分复杂的时候,我们可以使用any类型,但是不推荐到处使用any,也不推荐不使用any

TypeScript类型-unknown类型

  • unknown是TypeScript中比较特殊的类型

  • unknown类型的变量,做所有的操作前都是不合法的

    • 因此在做操作前,需要进行类型校验 称类型缩小
let str: unknown = "123456"//直接取length会报错
// console.log(str.length);//需要进行类型校验
if (typeof str === "string") {console.log(str.length)
}
  • any类型的区别
    • any类型,做所有的操作都是合法的,无需进行类型的校验
    • 而unknown类型,做所有的操作都是非法的,需要进行类型的校验

TypeScript类型-void类型

  • void通常用来指定一个函数是没有返回值的,就是void类型
  • 在TS中如果一个函数没有任何的返回值,那么返回值的类型就是void类型
    • 而js不返回任何东西,默认返回的就是undefined类型
  • 应用场景
    • 用于指定函数返回值类型是void类型
    • 同时,可以指定传入的参数是函数类型
//指定一个变量是函数 let foo:()=>void = () => {}
function delayFn(fn: () => void) {setTimeout(() => {fn()},1000)
}delayFn(() => {console.log(123);
})

TypeScript类型-never类型

  • 开发中很少实际去定义 never类型,通常是根据上下文自动推导出来的 never类型
//情况一不会自己定义never类型,通常是自动推导出来的
//1.死循环
function foo(): never {while (true) {console.log(123)}
}
foo()//2.函数返回值是空的情况
function foo1() {return []
}
  • 在开发框架或者工具的时候,可能会用到never
function changeMessage(message: string | number) {switch (typeof message) {case "string":console.log(message.length)breakcase "number":console.log(message);breakdefault://正常来说永远不会执行到default中的代码const check:never = message }
}changeMessage(123)//但有一天某个人对工具函数进行了更改,增加了一种boolean的情况,且没有考虑boolean的case,则default就会提示报错,让开发者能够看到问题
  • nerver表示永远不会发生值的类型,不能接受任何值

TypeScript类型-tuple类型

  • 元组类型
  • 数组类型十分相似,但是也有区别
    • **数组类型:**里面存放的数据要保持类型统一,虽然可以不统一,但是取值的时候,不能明确类型
    • 元组类型:可以存放不同的数据类型,且可以通过下标进行取值,取出来的值的类型是明确的
//数组的定义方法 类型[]
let arr: (string | number)[] = [123, "123"]//元组的定义方法 [类型1,类型2]
let tuple: [string, number, boolean] = ["123", 123, true]
console.log(tuple[0]);

相关文章:

TypeScript(一):TypeScript基本理解

TypeScript基本理解 为什么使用TS JavaScript发展至今&#xff0c;没有进行数据类型的验证而我们知道&#xff0c;在编程阶段&#xff0c;错误发现的越早越好而TS就解决了JS的这个问题 认识TypeScript TypeScript是拥有类型的JavaScript超级&#xff0c;它可以编译成普通、…...

C语言—指针

碎碎念:做指针题的时候我仿佛回到了原点&#xff0c;总觉得目的是为了把框架搭建起来&#xff0c;我胡说的哈31 1.利用指针变量将一个数组中的数据反向输出。 /*1.利用指针变量将一个数组中的数据反向输出。*/#include <stdio.h> #include <time.h> #include <…...

c++作业

Shell中的函数&#xff08;先调用后使用的原则&#xff09;&#xff08;没有申明&#xff09; &#xff08;Function&#xff09; 函数名&#xff08;有没有参数根据调用格式&#xff09;&#xff08;不能写任何内容&#xff09; { 函数体 Return 返回值 } 函数名 ----》…...

什么是tomcat?tomcat是干什么用的?

前言 Tomcat是一个开源的、轻量级的应用服务器&#xff0c;是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages&#xff08;JSP&#xff09;和Java Expression Language&#xff08;EL&#xff09;等Java技术&#xff0c;用于支持在Java平台上运行的动态W…...

中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...

本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。 论文引用如下&#xff1a; Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Ener…...

C# 如何实现一个事件总线

EventBus&#xff08;事件总线&#xff09;是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。 它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中&#xff0c;我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件…...

Python学习路线图

防止忘记&#xff0c;温故知新 进阶路线...

作业2.14

chgrp: 只能修改文件的所属组 chgrp 新的组 文件名 要求&#xff1a;修改的目标组已经存在 chown: chown 新的用户名 文件名 sudo chown root &#xff1a;1 将文件1的所属组用户和所属组用户都改为root sudo chown root&#xff1a;ubuntu 1 将文件1的所属用户…...

基于python+django+mysql的小区物业管理系统

该系统是基于pythondjango开发的小区物业管理系统。适用场景&#xff1a;大学生、课程作业、毕业设计。学习过程中&#xff0c;如遇问题可以在github给作者留言。主要功能有&#xff1a;业主管理、报修管理、停车管理、资产管理、小区管理、用户管理、日志管理、系统信息。 演示…...

控制与状态机算法

控制与状态机算法是计算机科学、电子工程和自动化领域中常用的一种设计工具,它用来描述一个系统的行为,该系统在不同时间点可以处于不同的状态,并且其行为取决于当前状态以及输入的信号或事件。状态机算法的核心概念包括: 状态(State):系统的任何可能配置。每个状态代表…...

sql常用语句小结

创建表&#xff1a; create table 表名&#xff08; 字段1 字段类型 【约束】【comment 字段1注释】&#xff0c; //【】里面的东西可以不用加上去 字段2 字段类型 【约束】【comment 字段2注释】 &#xff09;【comment 表注释】 约束&#xff1a;作用于表中字段上的规则…...

云计算基础-虚拟机迁移原理

什么是虚拟机迁移 虚拟机迁移是指将正在运行的虚拟机实例从一个物理服务器&#xff08;或主机&#xff09;迁移到另一个物理服务器&#xff08;或主机&#xff09;的过程&#xff0c;而不会中断虚拟机的运行。 虚拟机拟机迁移分类虚 热迁移&#xff1a;开机状态下迁移 冷迁…...

云计算基础-云计算概念

云计算定义 云计算是一种基于互联网的计算方式&#xff0c;通过这种计算方式&#xff0c;共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算依赖资源共享以达成规模经济&#xff0c;类似基础设置(如电力网)。 云计算最基本的概念就是云加端&#xff0c;我们有一个…...

如何将阿里云服务器迁移

&#x1f4d1;前言 本文主要是如何将阿里云服务器迁移实现数据转移的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️** &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…...

如何将本地的python项目部署到linux服务器中

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 。 前言 本地写好的python项目&#xff0c;如何部署在服务器上运行呢&#xff1f;今天&#xff0c;我们就来抽一点点时间来看看。&#xff08;网上找的资料&#xff0c;大部分都囫囵吞枣的…...

每日五道java面试题之java基础篇(五)

目录&#xff1a; 第一题. final、finally、finalize 的区别&#xff1f;第二题. 和 equals 的区别&#xff1f;第三题.hashCode 与 equals?第四题. Java 是值传递&#xff0c;还是引⽤传递&#xff1f;第五题 深拷贝和浅拷贝&#xff1f; 第一题. final、finally、finalize 的…...

HiveSQL——用户行为路径分析

注&#xff1a;参考文档&#xff1a; SQL之用户行为路径分析--HQL面试题46【拼多多面试题】_路径分析 sql-CSDN博客文章浏览阅读2k次&#xff0c;点赞6次&#xff0c;收藏19次。目录0 问题描述1 数据分析2 小结0 问题描述已知用户行为表 tracking_log&#xff0c; 大概字段有&…...

专利的申请

申请发明或者实用新型专利的&#xff0c;应当提交请求书、说明书及其摘要和权利要求书等文件。 请求书应当写明发明或者实用新型的名称&#xff0c;发明人或者设计人的姓名&#xff0c;申请人姓名或者名称、地址&#xff0c;以及其他事项。 说明书应当对发明或者实用新型作出清…...

嵌入式学习 C++ Day5、6

嵌入式学习 C Day5、6 一、思维导图 二、作业 1.以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴…...

阿里云香港服务器cn2速度测试和租用价格表

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品&#xff0c;中国电信CN2高速网络高质量、大规格BGP带宽&#xff0c;运营商精品公网直连中国内地&#xff0c;时延更低&#xff0c;优化海外回中国内地流量的公网线路&#xff0c;可以提高国际业务访问质量。阿里云服务…...

《学成在线》微服务实战项目实操笔记系列(P92~P120)【下】

史上最详细《学成在线》项目实操笔记系列【下】&#xff0c;跟视频的每一P对应&#xff0c;全系列18万字&#xff0c;涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳&#xff0c;参考这篇&#xff0c;相信会带给你极大启发。 四、课程发布模块 4.1 (课程发布)模块需求…...

php数据类型以及运算符、判断条件

php数据类型以及运算符 1. php数据类型2. 使用举例3. 运算符4. 判断条件if else elseif 1. php数据类型 包括 String(字符串)、Integer(整型)、Float(浮点型)、Boolean(布尔型)、Array(数组)、Object(对象)、NULL(空值) 2. 使用举例 1.字符串 2.整型 3.浮点型 4.布尔型 5.数组…...

大数据01-导论

零、文章目录 大数据01-导论 1、数据与数据分析 **数据&#xff1a;是事实或观察的结果&#xff0c;是对客观事物的逻辑归纳&#xff0c;是用于表示客观事物的未经加工的原始素材。**数据可以是连续的值&#xff0c;比如声音、图像&#xff0c;称为模拟数据&#xff1b;也可…...

智能网卡(SmartNIC):增强网络性能

在当今的数字时代&#xff0c;网络性能和数据安全是各行各业面临的关键挑战。智能网卡是一项颠覆性的技术创新&#xff0c;对增强网络性能和加强数据安全性具有关键推动作用。本文旨在探讨智能网卡的工作原理及其在不同应用场景中的重要作用。 什么是智能网卡&#xff1f; 智…...

算法刷题day14

目录 引言一、平均二、三国游戏三、松散子序列 引言 今天做了三道新题&#xff0c;类型是贪心、枚举、DP&#xff0c;不是特别难&#xff0c;但是努力一下刚好能够够得上&#xff0c;还是不错的&#xff0c;只要能够一直坚持下去&#xff0c;不断刷题不断总结&#xff0c;就是…...

个性签名大全

只许一生浮世清欢愿我以孤独作为铠甲&#xff0c;自此不再受伤愿我是阳光&#xff0c;明媚而不忧伤我不敢太勇敢太执着太骄傲&#xff0c;我怕失去开始你是我的天使&#xff0c;最后你是我的唯一姐的霸气&#xff0c;无人能比&#xff0c;哥的傲气&#xff0c;无人能朋唯有万事…...

前端常用代码整理(不断更新中)— js,jquery篇(2)

目录 1.随机生成字符串 2.删除数组中重复元素 3.RGB到十六进制转换机制 4.打乱一个数组&#xff0c;重新组合 5.获取两个日期的时间间隔 &#xff08;天数&#xff09; 6.获取当天属于今年的第几天 7.截取字符串长度,超过部分显示为 ... 8.判断数组是否为空 9.英文句子首…...

普中51单片机学习(六)

点亮第一个LED LED相关知识 LED,即发光二极管&#xff0c;是一种半导体固体发光器件。工作原理为&#xff1a;LED的工作是有方向性的&#xff0c;只有当正级接到LED阳极&#xff0c;负极接到LED的阴极的时候才能工作&#xff0c;如果反接LED是不能正常工作的。其原理图如下 …...

visual studio注册码

最近在研究c/c 安装visual studio 需要注册 技术博客http://idea.coderyj.com/ 注册码 Visual Studio 2022(VS2022)激活码&#xff1a; Pro&#xff08;专业版&#xff09;: TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterprise&#xff08;企业版&#xff09;: VHF9H-NXBBB-638P6-6JHC…...

Studio One 6.5下载安装激活图文教程

Studio One 6.5是由PreSonus公司打造一款功能强大的数字音乐创作软件&#xff0c;不仅为用户们提供了制作、混合、掌握和执行所有操作&#xff0c;还提供了简洁直观的主界面&#xff0c;因此使用起来也是十分的简单&#xff0c;就算是初学者也可以快速的上手使用起来&#xff0…...

Kubernetes(K8S)集群部署实战

目录 一、准备工作1.1、创建3台虚拟机1.1.1、下载虚拟机管理工具1.1.2、安装虚拟机管理工具1.1.3、下载虚Centos镜像1.1.4、创建台个虚拟机1.1.5、设置虚拟机网络环境 1.2、虚拟机基础配置&#xff08;3台虚拟机进行相同处理&#xff09;1.2.1、配置host1.2.2、关闭防火墙1.2.3…...

流畅的Python(十)-序列的修改、散列和切片

一、核心要义 以第九章定义的二维向量为基础&#xff0c;定义表示多为向量的Vector类。该类将支持如下功能&#xff1a; 1. 基本的序列协议 2. 适当的切片支持&#xff0c;且返回的是新Vector实例 3.综合各个元素的值计算散列值 4.格式化展示 二、代码示例 1、前情提要 …...

TCP/IP五层各层协议详解

TCP/IP协议栈是网络通信的基础&#xff0c;它由五层协议组成&#xff0c;分别是物理层、数据链路层、网络层、传输层和应用层。以下是对各层协议的详细解释&#xff1a; 1. 物理层&#xff08;Physical Layer&#xff09;&#xff1a;该层负责传输比特流&#xff0c;主要定义传…...

MySQL 基础知识(九)之视图

目录 1 视图的介绍 2 视图算法 3 创建视图 4 查看视图结构 5 修改视图 6 删除视图 7 参考文档 1 视图的介绍 视图是一张并不存储数据的虚拟表&#xff0c;其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义&#xff0c;通过 SQL 语句使用视图时…...

算法之力扣数青蛙

题目连接 文章目录 题目解析算法原理第一步第二步第三步第三步第四步指向o 代码讲解代码实现 题目解析 先给大家来讲解一下这个题目的意思吧&#xff0c;这个题目是说呢给你一个蛙叫的字符串让你去设计一个算法求出发出这种蛙叫最少需要几只青蛙。比如说第一个样例发出这种叫声…...

【后端高频面试题--Nginx篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 后端高频面试题--Nginx篇 往期精彩内容什么是Nginx&#xff1f;为什么要用Nginx&#xff1f;为…...

TiDB 在医疗保障信息平台的应用实践

文章介绍了 TiDB 在医疗保障信息平台中的应用。东软医保云应用管理平台通过与 TiDB 联合&#xff0c;成功满足了医疗保障业务中高并发、实时性和复杂查询的要求。在某地市医疗保障信息平台的实践中&#xff0c;TiDB 分布式数据库有效实现了在线交易和实时分析服务&#xff0c;日…...

支付交易——跨境交易

摘要 老王兢兢业业经营生意多年&#xff0c;一步步从小杂货店做到现在&#xff0c;成立大型贸易公司。在做大做强的过程中&#xff0c;老王觉得国内市场已经饱和&#xff0c;竞争处处是红海。老王留意海外很多年了&#xff0c;决定走出去&#xff0c;转向海外:将国外的商品引进…...

上位机图像处理和嵌入式模块部署(上位机主要功能)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前关于机器视觉方面&#xff0c;相关的软件很多。比如说商业化的halcon、vision pro、vision master&#xff0c;当然也可以用opencv、pytorch自…...

【前端工程化面试题】webpack的module、bundle、chunk分别指的是什么?

首先从语法方面 在配置文件中有 module 这个配置项&#xff0c;里面有 rules 选项用来配置各种 loader&#xff0c;还有其他各种选项&#xff0c;参考官网。bundle 和 chunk 在配置文件中是没有这个选项的&#xff0c;但是会出现在配置的值中。 module 模块 指单个文件&#xf…...

软件实例分享,家具生产出库管理系统软件教程

软件实例分享&#xff0c;家具生产出库管理系统软件教程 一、前言 以下软件程序教程以 佳易王家具行业生产出库管理系统软件V16.1为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 销售管理——产品状态查询变更&#xff0c;可以根据生产进度变更…...

[uniapp的页面传参]详细讲解uniapp中页面传参的传递方式和接受方式 使用案例 代码注释

目录 一、传递方式1. URL传参2. Storage传参3. Vuex传参4.api传参eventChannel 二、接受方式1. URL传参2. Storage传参3. Vuex传参4.api传参eventChannel 三、使用案例四.提醒 在uniapp中&#xff0c;页面传参是非常常见的需求。本文将详细讲解uniapp中页面传参的传递方式和接受…...

Python实现时间序列分析霍尔特季节性平滑模型(Holt算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 霍尔特季节性平滑模型是指数平滑技术的一种扩展形式&#xff0c;由E. S. Holt和P. R. Winters分别独立…...

Rokid Station 进fastboot

前一阵子手里的station开不开机了&#xff0c;反复重启&#xff0c;摸索出进fastboot的方法&#xff1a; 关机状态下同时按电源键下面的确认键&#xff08;○键&#xff09;&#xff0c;指示灯会进入白色常亮状态&#xff0c;插入电脑会在设备管理器内显示DNL设备&#xff08;…...

Java支持的默认访问修饰符是什么?

Java支持的默认访问修饰符是没有指定任何访问修饰符&#xff0c;通常被称为“包访问级别”或“默认访问级别”。当一个类成员&#xff08;包括类、接口、变量以及方法&#xff09;没有显式地指定任何访问修饰符时&#xff0c;它就会拥有默认访问级别。 在默认访问级别下&#…...

Java使用Documents4j实现Word转PDF(知识点+案例)

文章目录 前言源码获取一、认识Documents4j二、快速集成2.1、pom.xml依赖2.2、word转PDF实现项目目录WordUtils.javaDemo6.java测试效果 参考文章资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里…...

CSimplemathproblem ---- 牛客网

题目描述 这一节课&#xff0c;Priest给大家做了一个小测试。 老师给了你两个正整数X, Y。并按照一下规则做运算&#xff0c;求出答案Z。 如果X是Y的因数&#xff0c;则Z等于X Y。否则Z Y - X。 输入描述: 输入两个正整数X, Y。 (1 < X < Y < 100000000000000)。 输…...

[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令

目录 一、rtconfig.h 1.1 概述 1.2 软硬件资源配置 1.3 功能模块选择 1.4 内核配置详解 1.5 调度器配置 1.6 硬件设备驱动配置 1.7 网络配置 1.8 调试配置 二、menuconfig 2.1 概述 2.2 主要功能 三、RT Thread配置 VS Linux配置 一、rtconfig.h 1.1 概述 rtco…...

C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;一&#xff09;】 1、引用的概念1.1、引用应用的简单示例1.2、常引用 2、"const"关键字的用法&#xff08;常量指针/指针常量&#xff09;3、动态内存分配4、内联函数5、函数重载5.1、什么是函数重载5.2、函数…...

C语言:国家名称按字母表排序

题目描述 输入一个整数n(n<20)&#xff0c;表示待输入国家的数量。随后输入n个国家或地区的名称 (名称长度为1~30)&#xff0c;要求按字母顺序升序输出。 注意&#xff1a;名称中可能包含空格符。 提示 字符串比较请使用函数&#xff1a; int strcmp(const char* str1&a…...