对象安全性带来的一个大坑

发布时间:2024-10-07 21:37
最后更新:2024-10-07 21:37
所属分类:
Rust

在最近的编码中遇到了一个提示the trait cannot be made into an object的问题。这个问题其实是从其他语言中直接迁移来的习惯造成的,这里记录一下问题所在。


索引标签
Rust
对象安全性
动态分发

Java 21的新特性

发布时间:2023-11-23 10:09
最后更新:2024-09-03 08:45
所属分类:
JVM Java

Java 21是继Java 17之后的一个长期支持版本(LTS),也是一个里程碑版本,其中稳定提供了很多功能。Java 21引入了15个新特性,但是这些新特性大多都是在之前的版本中进行了孵化和预览的,这里拣选这些特性中比较重要且可能比较常用的功能来记录。


索引标签
JVM
Java
Java 21
新特性
模式匹配
有序集合
虚拟线程
未命名类
未命名模式
字符串模板

Java 20的新特性

发布时间:2023-11-23 10:05
最后更新:2024-09-03 08:19
所属分类:
JVM Java

Java 20与Java 19一样也是一个小功能进化版本,其在Java 19的基础之上并没有引入太多的新功能,而是继续孵化之前版本中引入的功能。


索引标签
JVM
Java
Java 20
新特性
作用域值

Java 19的新特性

发布时间:2023-11-23 10:04
最后更新:2024-09-02 22:42
所属分类:
JVM Java

Java 19同样是一个小的进化版本,相比Java 18并没有引入更多稳定发布的功能,而是继续对即将要加入的功能进行孵化和预览。


索引标签
JVM
Java
Java 19
新特性
模式匹配
外部函数
虚拟线程
结构化并发

新增的#[diagnostic]属性

发布时间:2024-06-20 22:12
最后更新:2024-06-21 10:12
所属分类:
Rust

随着Rust 1.78版本的发布,有很多还没有升级Rust编译器的小伙伴在升级依赖库的时候,可能就会遇到#[diagnostic]属性不支持的错误了。那么这个新增的#[diagnostic]到底有什么用途呢?


索引标签
Rust
属性
diagnostic

小记编写派生宏

发布时间:2022-11-30 23:08
最后更新:2024-06-20 22:40
所属分类:
Rust

派生宏是Rust中过程宏的一种,也是平时最为常见和常用的宏。善用派生宏可以快速的为已有的数据结构批量增加功能相似的内容。Rust中的过程宏之所以在学起来十分的艰难,主要还是因为宏是一门专门用于生成代码结构的语言,要想熟练的掌握宏的编写,还必须首先熟练掌握Rust基本语言本身。


索引标签
Rust
过程宏
派生宏

深入Rust中的类型转换

发布时间:2022-11-01 08:30
最后更新:2024-06-20 22:40
所属分类:
Rust

其实类型转换在各种强类型的语言中的使用都非常的广泛,而在实现某个具体业务的时候,所绘制的数据流图也是由一种数据转换成另一种数据来体现业务流程的流转和变化的。所以其实设计程序的工作更多的就是处理和转换不同的数据类型。但是对与Rust这种对于数据类型要求更高的语言中,数据类型之间的转换就看起来变得更加复杂了。


索引标签
Rust
类型转换
装箱
拆箱
智能指针
迭代器

Rust中的宏

发布时间:2022-03-18 15:31
最后更新:2024-06-20 22:39
所属分类:
Rust

宏是元编程的一种手段,在Rust中,宏无处不在。宏在C/C++中就是一个特别广泛的存在,但是C/C++中的宏来的远远比Rust中的宏危险。C/C++中的宏主要采用的是文本替换的形式混入代码中,而Rust中的宏则是会采用展开成为源代码的方式混入代码,然后再与代码的其余部分一起进行编译。


索引标签
Rust
macro

静态分发和动态分发

发布时间:2023-03-04 18:16
最后更新:2024-06-20 22:39
所属分类:
Rust

Rust中的特征(trait)可以被看作是其他语言中的接口,它其实是一种约束。通过特征可以直接调用实现了这个特征的数据结构中的方法,根据实现形式不同,这种分发存在静态分发和动态分发两种形式。


索引标签
Rust
特征
静态分发
动态分发
多态

更深入的理解生命期

发布时间:2022-10-17 09:01
最后更新:2024-06-20 22:39
所属分类:
Rust

在入门Rust以后,会发现生命期(Lifetime)是一个比所有权机制更难以理解和掌握的机制。当我们磕磕绊绊的解决了程序里的所有权转移以后,就会发现Rust编译开始报出生命期的编译错误了。所以生命期机制是Rust中第二个劝退点,顺利攻克生命期的概念是使用和进入Rust编程大门的一个必经之路。


索引标签
Rust
生命期
引用