- 博客(261)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot:web开发
springboot:web开发,技术摘要1. webjars2. Bootstrap3. 模板引擎thymeleaf4. 嵌入式Servlet容器5. 注册web三大组件
2024-02-06 17:24:16 1187
原创 正则表达式提取短信验证码
从短信中提取短信验证码正则表达式public class TestGetDynamicPwd { public static void main(String[] args) { getDynamicSmsVerifyCode(); getDynamicSmsVerifyCode2(); } /** * 从字符串中截取连续6位数字组合 ([0-9])截取六位数字 进行前后断言不能出现数字 用于从短信中获取动态密码 *
2021-06-04 10:32:47 4295 1
原创 TypeScript:装饰器
随着TypeScript和ES6里引入了类,在一些场景下我们需要额外的特性来支持标注或修改类及其成员。 装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。注意: 装饰器是一项实验性特性,在未来的版本中可能会发生改变。
2024-10-06 22:50:02 907
原创 HarmonyOS:DevEco Studio的使用
DevEco Studio提供开箱即用的开发体验,将HarmonyOS SDK、Node.js、Hvigor、OHPM、模拟器平台等进行合一打包,简化DevEco Studio安装配置流程。HarmonyOS SDK已嵌入DevEco Studio中,无需额外下载配置。
2024-10-06 20:42:32 1602
原创 HarmonyOS:简介
HarmonyOS是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,为用户带来简捷,流畅,连续,安全可靠的全场景交互体验。
2024-10-03 20:06:35 1135
原创 Vite:搭建第一个 Vite 项目
Vite 需要 Node.js 版本 18+ 或 20+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。
2024-10-03 19:41:25 710
原创 Kotlin:2.0.20 的新特性
Kotlin 2.0.20发布的一些亮点:1. 数据类复制函数将具有与构造函数相同的可见性2. 对uuid的支持已添加到公共Kotlin标准库中3. 来自默认目标层次结构的源集的静态访问器现在可以在多平台项目中使用4. Kotlin/Native的并发标记已经在垃圾收集器中成为可能 Kotlin/Wasm中的@ExperimentalWasmDsl注释有一个新位置5. Gradle 8.6-8.8版本增加了支持
2024-10-01 09:46:02 983
原创 Kotlin:1.8.0 的新特性
Kotlin 1.8.0发布了,下面是它的一些亮点:JVM 平台新增实验性函数:递归复制或删除目录内容改进了 kotlin-reflect 性能新增 -Xdebug 编译器选项以提供更好的调试体验kotlin-stdlib-jdk7 与 kotlin-stdlib-jdk8 合并进了 kotlin-stdlib改进了 Objective-C/Swift 互操作性与 Gradle 7.3 的兼容性
2024-09-26 23:11:51 999
原创 TypeScript:命名空间和模块
命名空间是位于全局命名空间下的一个普通的带有名字的JavaScript对象。 这令命名空间十分容易使用。 它们可以在多文件中同时使用,并通过 --outFile结合在一起。 命名空间是帮你组织Web应用不错的方式
2024-09-26 23:02:29 987
原创 TypeScript:命名空间
在TypeScript里使用命名空间(之前叫做“内部模块”)来组织你的代码。 就像我们在术语说明里提到的那样,“内部模块”现在叫做“命名空间”。 另外,任何使用 module关键字来声明一个内部模块的地方都应该使用namespace关键字来替换。 这就避免了让新的使用者被相似的名称所迷惑。
2024-09-24 23:15:41 859
原创 TypeScript:模块
从ECMAScript 2015开始,JavaScript引入了模块的概念。TypeScript也沿用这个概念。模块在其自身的作用域里执行,而不是在全局作用域里;这意味着定义在一个模块里的变量,函数,类等等在模块外部是不可见的,除非你明确地使用export形式之一导出它们。 相反,如果想使用其它模块导出的变量,函数,类,接口等的时候,你必须要导入它们,可以使用 import形式之一。模块是自声明的;两个模块之间的关系是通过在文件级别上使用imports和exports建立的。
2024-09-24 09:40:41 969
原创 TypeScript:迭代器和生成器
当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。 一些内置的类型如 Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator。 对象上的 Symbol.iterator函数负责返回供迭代的值。for .. in 和 for ... of
2024-09-19 22:27:31 545
原创 TypeScript:Symbols
自ECMAScript 2015起,symbol成为了一种新的原生类型,就像number和string一样。symbol类型的值是通过Symbol构造函数创建的。Symbols是不可改变且唯一的。
2024-09-19 22:06:45 947
原创 TypeScript:高级类型
TypeScript里的 类型保护机制让它成为了现实。 类型保护就是一些表达式,它们会在运行时检查以确保在某个作用域里的类型。 要定义一个类型保护,我们只要简单地定义一个函数,它的返回值是一个 类型谓词:
2024-09-16 20:24:20 1324
原创 TypeScript:类型兼容性
TypeScript里的类型兼容性是基于结构子类型的。 结构类型是一种只使用其成员来描述类型的方式。 它正好与名义(nominal)类型形成对比。(译者注:在基于名义类型的类型系统中,数据类型的兼容性或等价性是通过明确的声明和/或类型的名称来决定的。这与结构性类型系统不同,它是基于类型的组成结构,且不要求明确地声明。
2024-09-16 12:15:04 1011
原创 Kotlin:1.9.0 的新特性
新版 Kotlin K2 编译器更新稳定版枚举类的 values 函数替代稳定版用于前闭后开区间的 …< 操作符新增按名称获取正则表达式捕获组的公共函数新增用于创建父目录路径的实用程序Kotlin 多平台 Gradle 配置缓存预览版Kotlin 多平台 Android 目标平台支持的变更Kotlin/Native 自定义内存分配器预览版Kotlin/Native 的库链接Kotlin/Wasm 尺寸相关的优化
2024-09-15 19:26:17 988
原创 TypeScript:泛型
给identity3添加了类型变量T。 T帮助我们捕获用户传入的类型(比如:number),之后我们就可以使用这个类型。 之后我们再次使用了 T当做返回值类型。现在我们可以知道参数类型与返回值类型是相同的了。 这允许我们跟踪函数里使用的类型的信息。
2024-09-14 06:56:22 1033
原创 TypeScript:函数
TypeScript里的每个函数参数都是必须的。 这不是指不能传递 null或undefined作为参数,而是说编译器检查用户是否为每个参数都传入了值。 编译器还会假设只有这些参数会被传递进函数。 简短地说,传递给一个函数的参数个数必须与函数期望的参数个数一致。
2024-09-12 23:08:48 1163
原创 TypeScript:类
JavaScript程序员将能够使用基于类的面向对象的方式。 使用TypeScript,我们允许开发者现在就使用这些特性,并且编译后的JavaScript可以在所有主流浏览器和平台上运行,而不需要等到下个JavaScript版本。
2024-09-12 21:15:25 1132
原创 TypeScript:接口
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。
2024-08-25 22:43:50 663
原创 TypeScript:变量声明
当用let声明一个变量,它使用的是词法作用域或块作用域。 不同于使用 var声明的变量那样可以在包含它们的函数外访问,块作用域变量在包含它们的块或for循环之外是不能访问的。
2024-08-25 18:50:24 845
原创 Android:使用Gson常见问题(包含解决将Long型转化为科学计数法的问题)
Android:使用Gson常见问题(包含解决将Long型转化为科学计数法的问题)
2024-08-18 17:36:09 568
原创 Android:动态更新app启动图标和应用名
Android app只能替换内置的icon,因此需要提前将logo图标放入App资源文件件里实际项目App更新桌面启动图标由服务器端控制,可以在App启动页里请求全局配置接口,根据接口返回的是否更新启动图标字段值进行处理。
2024-08-18 10:55:50 1268
原创 Vue:Vuex-Module
由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割。
2024-08-15 09:40:07 1029
原创 Vue:Vuex-Action
Action 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状态。Action 可以包含任意异步操作。
2024-08-15 09:04:15 904
原创 Vue:Vuex-Mutation
更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数:
2024-08-14 15:19:27 538
viewtobitmap.rar
2019-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人