随笔分类 - 编码
摘要:毫无疑问,宏是rust中极其重要的存在,只要我们看看一些标准库的代码。本文阐述rust宏相关的若干问题 一、宏的定义和作用 先介绍下宏的起源和历史,以便读者更能体会。 以下内容来自文心一言生成: 词源与早期含义 希腊-拉丁词根 "macro"源于希腊语前缀μακρο-(makro-),意为“大”或“
阅读全文
摘要:DST(dynamic size type)-中译“动态大小类型"。本文简要讨论动态大小类型的一些问题。 一、前言 rust作为一门静态类型语言,和大部分其它静态类型语言(C,C++,C#,JAVA)一样,希望在编译的时候知道每个实例/类型的大小。 作为静态类型语言,优点是毋庸置疑的的: 1.类型错
阅读全文
摘要:neverType是rust别出心裁,与众不同的再一次佐证. 当我看完有关资料的第一感觉就是:rust真操蛋,永不类型就是一个标记而已,有时候有用,而有时候就是一个干扰(实为不习惯)! 一、前言 rust的永不类型,已经明显表达其意图:永不继续 它的标识符号是一个感叹号 ! 二、示例1 闲话少叙,直
阅读全文
摘要:一、前言 为通用类型赋予一个默认的类型,大部分的语言是没有这个特性的,但是也有例外的,例如TypeScript(可能还有其它)。 例如TypeScript可以这样使用: class MyClass<T = number> { value: T; constructor(value: T) { thi
阅读全文
摘要:一、纲要 定义 1. new Vec::new(); 2. 采用宏 vec![1, 2, 3]; 操作 0.读取 索引语法或者 get 方法 ,注意索引从0开始. vec[0]或者vec.get(0) vec[i] 不会改变所有权,但如果发生越界,则会导致程序终止 get(i) 返回的是一个Opti
阅读全文
摘要:枚举是十分特别的类型,是因为和大部分语言中看起来不太一样。 最大的不同之一在于:允许每个成员具有不同的类型的属性 注:本文内容根据<<The rust programmming Language>>有关章节编写 如果没有特别说明,"rust学习"系列基本上都是根据此书编写,不再在后续的篇幅中说明 一
阅读全文
摘要:rust的struct结构体是一个不错的东西,不像java,后者在17版本左右才可用。 有许多语言都有类似的东西,例如pascal有record。 在rust中,struct大体等于java的class,c#的class。 本文主要根据<<The rust programming language>
阅读全文
摘要:入门者,在搭建好环境好之后,接下来得先熟悉工具。有了趁手的工具,学起来才会快得多!此所谓工欲善其事必先利其器! 作为入门者,非常希望能够单独运行一个rust脚本,而没有必要一个练习就建立一个项目,或者在一个笨重的ide中运行一个脚本文件。 在https://crates.io上,我们可以找到各种各样
阅读全文
摘要:之所以单独把这个列出来,是因为本人被一个源码给震撼了。 所以,本人目的是看看这个震撼实现,并模仿,最后把常规的实现也贴上,让读者可以看到相对完整的实现 注:本文代码基于JDK17 一、让人震撼的代码 Collectors.toList() public static <T> Collector<T,
阅读全文
摘要:java提供了抽象类和接口,总体是好事。 有的OOP语言并没有接口的概念,但相当一部分其实用其它方式实现了JAVA中接口类似的功能。 如果不太清楚二者的区别,难免在面临具体业务的时候,在二者之间摇摆。 实际上,关于抽象类和接口的共同点和不同点没有什么可以写的。 设计原则原则让我们尽量基于接口编程(I
阅读全文
摘要:CRUD即CREATE,READ,UPDATE,DELETE的首字母的合写,意思是增读改删。前人为了便于发音和理解,改为增删改查。 CRUD基本上是软件开发中中相当部分功能的最小功能模块构成,虽然软件的功能并不总是CRUD,但对于信息的操作就只有这四个了。 我们现在还是这么称呼,一个方面是因为大部分
阅读全文
浙公网安备 33010602011771号