自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 仓颉:流式I/O的设计模式

流式I/O是现代编程语言处理输入输出的核心抽象,它将各种I/O源(文件、网络、内存)统一为流的概念,提供一致的读写接口。仓颉语言的流式I/O设计不仅继承了经典的装饰器模式和责任链模式,更融入了现代语言在资源管理、错误处理和并发安全方面的创新思考。本文将深入剖析仓颉流式I/O的设计哲学,从基础抽象到装饰器组合,从缓冲策略到资源生命周期管理,全面揭示这一系统级功能背后的工程智慧。

2025-11-10 11:29:17 321

原创 仓颉:Set集合的去重机制

Set作为数学集合概念在编程中的具象化,其核心特性是元素的唯一性——任何元素在集合中最多出现一次。这看似简单的约束背后,隐藏着复杂的去重机制设计。仓颉语言的Set实现不仅要保证高效的元素查找和插入,还要在类型安全、内存效率和一致性保证之间找到平衡。本文将深入剖析仓颉Set的去重机制,从哈希函数的作用到等价性判断的细节,从HashSet到TreeSet的不同策略,全面揭示集合去重这一基础功能背后的工程智慧。

2025-11-10 11:25:55 239

原创 Rust 深入理解 Feature Flags

Rust 的 Feature Flags 远不止“功能开关”,它是 Rust 模块化生态的隐形引擎。通过它,我们可以构建出既可裁剪又可扩展的系统结构,实现灵活的工程级控制。而更重要的是,Rust 以类型安全与编译期校验为核心,保证了 feature 控制的正确性与一致性。掌握 feature flags 的使用,不仅能让你的库更优雅、更通用,也让你在工程管理上更具掌控力。Rust 倡导的是显式、确定与高效——Feature Flags 正是这一哲学的最佳体现。

2025-10-30 15:35:50 269

原创 Rust cargo clippy代码检查

不只是一个“工具”,而是一位 Rust 导师。它让我们不止写出能运行的程序,而是写出表达清晰、意图明确、性能可靠的代码。当你在命令行中敲下的那一刻,其实是在与整个 Rust 社区的智慧对话。如果你想真正写出“像 Rustacean 一样”的代码,那么,请从开启 Clippy开始。

2025-10-30 15:34:15 768

原创 Rust cargo fmt代码格式化

虽然 Rustfmt 默认格式已覆盖绝大多数场景,但在大型项目中,开发团队可能仍希望针对特定风格进行微调。这些配置项允许你控制单行最大长度、import 排序方式、缩进风格等。更关键的是,配置文件可以被版本控制,从而保证整个团队共享同一套风格标准。该命令不会修改文件,而是仅检查是否符合规范。这在 CI(持续集成)场景中非常常用——可以阻止未格式化的代码被提交。Rust 追求的并非仅是代码的整齐,而是工程的一致性与可重现性。cargo fmt。

2025-10-30 15:32:46 734

原创 Rust 自定义cargo命令

自定义 Cargo 命令看似小技巧,却是通向更高层次 Rust 工程化思维的钥匙。它让我们不仅能写出“好代码”,还能打造属于团队的开发体验。下次,当你想让同事只用一个命令就能完成一整套流程时,你已经在用 Rust 打造自己的生产力工具链了。🚀。

2025-10-30 15:31:08 993

原创 Rust 中的零拷贝技术

Rust 的零拷贝技术,是性能与安全的完美结合。它依托于语言级的内存安全模型,让开发者能够在系统编程层面实现近乎极限的性能优化。无论是在文件 I/O、网络传输,还是高吞吐数据管道中,合理利用零拷贝技术,往往能让程序性能提升一个量级。Rust 让“零拷贝”不再是危险的系统技巧,而成为了安全且优雅的工程能力。

2025-10-30 15:29:16 517

原创 仓颉内存管理:栈与堆的分配策略

在仓颉中,对栈与堆的选择,是开发者最重要的一项“内功”。尽可能地使用值类型,让数据在栈上创建和销毁。这是你获得极致性能的默认路径。当数据大小动态、或需要更长的生命周期时,通过Box或Vec等“智能容器”来使用堆。利用所有权系统,让编译器在编译期就帮你管理好堆内存的释放,确保100%的安全,同时享受0%的运行时垃圾回收开销。将内存布局的控制权交还给开发者,但同时提供强大的编译器工具(所有权系统)来确保这种控制是绝对安全的。加油!深刻理解了这一点,你离仓颉专家就更近一步了!💪。

2025-10-29 17:38:38 938

原创 仓颉技术:结构体中的生命周期参数详解

安全问题必须在编译期显式解决。它不是一个“建议”,而是一个强制约束。它是实现零拷贝、高性能数据视图(View/Slice)的**安全途径**。它将数据“所有者”和“借用者”的关系,通过 `'` 这样的参数,在 API 层面固定下来,成为一个编译器可检查的契约。它强迫我们从“管理指针”转向“管理所有权和借用时长”,这从根本上提升了大型复杂系统的健壮性和可维护性。

2025-10-29 17:34:02 878

原创 仓颉:反射 API 的边界与高级实践

对于我们仓颉开发者而言,反射API不应该出现在日常的业务代码中。它是我们工具箱底层的“最后手段”。仓颉的(推测的)反射设计,其专业性体现在它的“克制”上。它鼓励我们优先使用泛型、接口和(可能的)元编程来解决问题,只在构建底层框架和工具时,才有限度地开放运行时的自省和操作能力。掌握反射的边界,理解其性能与安全的代价,并总能优先想到更“静态”、更“仓颉”的解决方案,这才是仓颉技术专家的应有之义。

2025-10-29 17:29:45 863

原创 仓颉:协变 (out) 与逆变 (in) 的应用场景深度剖析

简单来说,类型变异描述的是:如果Dog是Animal的子类型,那么和之间应该是什么关系?保持子类型关系。也是的子类型。反转子类型关系。反而是的子类型。它俩没关系。在仓颉这样的现代静态类型语言中,如果一切都是“不变”的,那代码的灵活性将大打折扣。而如果我们像 Java 数组那样“协变”可变容器(Dog[]是Animal[]的子类),又会引入运行时类型安全问题 (比如往Dog[]里塞一只Cat仓颉的设计哲学(我们可以合理推测)是在编译期就解决这个问题。

2025-10-29 17:19:30 989

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除