自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (6)
  • 收藏
  • 关注

翻译 Rust代码示例——8.2.loop

Rust使用loop关键字创建无限循环,配合break和continue控制循环流程。示例代码演示了如何从1计数到5:当计数为3时跳过输出,为5时终止循环。break用于完全退出循环,而continue仅跳过当前迭代。这种循环控制机制在需要重复执行直到满足特定条件时非常有用,且能精确控制循环行为。

2025-07-19 21:16:54

翻译 Rust代码示例——8.1.if/else

Rust中的if-else条件语句与其他语言类似,但布尔条件不需要圆括号。每个条件后跟大括号包裹的代码块,且所有分支必须返回相同类型。示例代码展示了if-else的基本用法和作为表达式时的特性:先判断数字正负,再根据数值大小进行不同计算并返回结果。特别注意作为表达式时每个分支都要返回相同类型,且let绑定需要分号结尾。

2025-07-19 21:15:17

翻译 Rust代码示例——8.控制流程

摘要:本文介绍Rust语言中的流程控制结构,包括条件判断(if/else)、循环(for等)等基本组成部分,这些结构可以改变程序的执行流程。内容将重点探讨Rust实现这些控制结构的具体语法和使用方法。

2025-07-19 21:13:43

翻译 Rust代码示例——7.表达式

Rust程序由语句组成,主要有两种形式:变量绑定和以分号结尾的表达式。代码块可作为表达式,其最后一行(无分号)的值将作为返回值;若以分号结尾则返回单元类型()。示例中演示了变量绑定和代码块表达式:y获取计算值,而z因分号返回()。输出显示x、y、z的值分别为5u32、155和()。

2025-07-19 21:11:59

翻译 Rust代码示例——6.3.字符串的to和From接口

本文介绍了Rust中类型与字符串的相互转换方法。要实现任意类型转字符串,需实现fmt::Display接口而非直接实现ToString,示例展示了为Circle结构体实现Display的方法。字符串解析为其他类型主要通过parse函数,可使用类型推断或turbofish语法,如字符串转i32的两种方式。自定义类型只需实现FromStr接口即可支持从字符串转换。代码示例演示了这些转换的具体实现方式。

2025-07-19 21:09:09

翻译 Rust代码示例——6.2.TryFrom和TryInto

Rust中的TryFrom和TryInto trait用于可能失败的转换操作,返回Result类型。与From/Into不同,它们可以处理转换失败的情况。示例展示了为EvenNumber结构体实现TryFrom<i32>,仅当输入为偶数时转换成功。在main函数中演示了try_from和try_into两种使用方式,分别测试了成功(8)和失败(5)的转换场景。这为处理类型转换中的错误情况提供了标准化的方式。

2025-07-19 21:06:13

翻译 Rust代码示例——6.1.From和Into

Rust中的From和Into是互补的转换特性:From允许类型定义如何从其他类型创建自己(如String::from(str)),而Into则定义了如何转换为其他类型。当实现From<T>时,Into会自动获得对应实现。标准库中常见于基本类型转换,开发者也可自定义转换逻辑,如将i32转换为自定义Number结构体。通过这两种特性,Rust提供了灵活的类型转换机制,其中Into在编译器无法推断目标类型时需要显式标注类型。

2025-07-17 21:50:19 5

翻译 Rust代码示例——6.转换

Rust中的类型转换分为基本类型强制转换和使用traits的自定义类型转换。基本类型可以直接强制转换,而自定义类型通过From和Into traits实现转换。对于字符串等常见类型,Rust提供了更专门的转换方法。

2025-07-17 21:46:10 3

翻译 Rust代码示例——5.4.别名

Rust中的类型别名允许为现有类型创建新名称,使用type关键字定义,遵循驼峰命名规范。示例展示了如何为u64创建NanoSecond、Inch等别名,这些别名本质上是相同类型,不会提供额外类型安全。类型别名的主要作用是减少代码重复,例如标准库中io::Result<T>就是Result<T, io::Error>的别名。使用时需注意基本类型如usize、f32等保持原有命名方式。

2025-07-17 21:08:22 3

翻译 Rust代码示例——5.3.类型推断

Rust的类型推断引擎非常的智能,系统不仅在初始化时根据值表达式来判断类型,它还会再后面查看变量如何使用来推断其类型。上面的示例中无需对变量的类型进行显式的声明,编译器乐于如此,程序员也是如此。

2025-07-17 21:06:26 2

翻译 Rust代码示例——5.2.字面量

Rust中数字字面量可以通过后缀指定类型(如42i32)。无后缀时,整型默认为i32,浮点型默认为f64。示例代码演示了带后缀(如u8、f32)和无后缀变量的内存占用情况,使用std::mem::size_of_val函数获取变量字节大小。该函数通过全路径std::mem调用,涉及Rust的模块系统概念。

2025-07-17 21:04:47 1

翻译 Rust代码示例——5.1.强制类型转换

通常,Rust按照C语言类型转换的形式在整形之间进行类型转换,除非C语言没有定义这种行为。所用在整形之间转换的行为都在Rust中进行了很好的定义。Rust对基本类型不提供隐式的类型转换(强制性的)。但是显示的类型转换使用as关键字。

2025-07-17 21:01:11 2

翻译 Rust代码示例——5.类型

摘要:本章介绍了Rust语言中处理类型转换与定义的相关机制,主要包括基本类型间的转换方法、字面量的类型指定方式、类型推断功能的使用以及类型别名的定义。这些功能为开发者提供了灵活的类型处理能力,帮助编写更清晰、更安全的代码。

2025-07-17 21:00:02 2

翻译 Rust代码示例——4.4.冻结

在Rust中,当变量在子作用域中被重新定义为不可变时,原变量会被"冻结"(不可修改),直到子作用域结束。示例代码展示了可变变量_mutable_integer在子作用域中被不可变绑定后无法修改的情况,而离开子作用域后恢复可变性。这体现了Rust的所有权系统和作用域规则对变量可变性的严格控制。

2025-07-16 21:13:37 4

翻译 Rust代码示例——4.3.首次声明

在Rust中,变量必须先初始化才能使用,否则编译器会报错。示例代码展示了两种初始化方式:一种是先声明后初始化(a_binding),另一种会导致错误(another_binding)。最佳实践是在声明变量的同时进行初始化,以提高代码可读性。未初始化的变量使用会产生编译错误,因为可能导致未定义行为。通过注释掉错误行可以修复代码,但推荐始终在声明时初始化变量。

2025-07-16 21:12:40 4

翻译 Rust代码示例——4.2.作用域与覆盖

本文介绍了变量作用域和遮蔽的概念。变量作用域限定在定义它的代码块内,超出范围则无法访问。示例展示了外层变量无法访问内层变量,而内层可以访问外层。此外,Rust支持变量覆盖(shadowing),允许在同一作用域内重新定义同名变量,新定义会覆盖旧值。通过嵌套代码块演示了变量在不同作用域中的可见性和遮蔽效果。

2025-07-16 21:10:55 3

翻译 Rust代码示例——4.1.可变性

在Rust中,变量默认是不可变的,必须用mut关键字声明可变变量。示例代码展示了不可变变量_immutable_binding和可变变量mutable_binding的区别:后者可以修改值(mutable_binding+=1),而前者修改会报错。这体现了Rust默认不可变的安全性设计,可变性需显式声明。

2025-07-16 21:08:25 1

翻译 Rust代码示例——4.变量绑定

Rust通过指定类型来获得类型安全。变量在定义时指定了类型。在大部分情况下,编译器可以通过上下文来推断出变量的类型,这样就可以大大地减少了声明变量的负担。通常使用let将值(如字面量)绑定到变量名上。

2025-07-16 21:06:36 2

翻译 Rust代码示例——3.3.常量

摘要:Rust支持两种全局常量:const(不可变常量)和static(可变静态变量)。const需要显式类型声明且不可修改,而static变量具有'static生命周期,但修改它是不安全的操作。示例代码展示了两种常量的声明方式(LANGUAGE和THRESHOLD)及其使用方法,同时指出修改const会导致编译错误(如THRESHOLD=5)。常量可在任何作用域使用,包括全局范围。

2025-07-14 10:19:48 6

翻译 Rust代码示例——3.2.3.测试案例:linked-list

摘要:本文展示了用Rust枚举实现链表的方法。通过定义包含Cons和Nil两个变体的List枚举,实现了链表的创建、元素添加、长度计算和字符串表示功能。其中Cons变体存储元素值和指向下一个节点的Box指针,Nil表示链表结尾。示例代码演示了创建链表、添加元素并输出结果的过程,体现了Rust枚举类型在数据结构实现中的灵活应用。这种方法简洁地表达了递归数据结构,同时保证了内存安全。

2025-07-14 10:13:22 6

翻译 Rust代码示例——3.2.2.类似C语言的枚举

Rust中的枚举(enum)可以指定显式或隐式的判别值。隐式枚举(如Number)从0开始自动赋值,而显式枚举(如Color)可自定义整数值。枚举值可以强制转换为整数类型,如i32,这使得它们可以像C语言的枚举一样使用。示例代码展示了如何将Number和Color枚举值转换为整数并打印输出,其中Color使用十六进制格式显示RGB颜色值。

2025-07-14 10:11:21 6

翻译 Rust代码示例——3.2.1.use

本文展示了在Rust中使用use声明简化作用域管理的示例。通过use crate::Stage::{Beginner, Advanced}和use crate::Role::*两种方式,分别实现了对枚举值的显式和通配符导入,使得后续代码可以直接使用枚举值而无需前缀。在match语句中,这些导入的枚举项可以直接被匹配,无需再写完整路径。同时还展示了#![allow(dead_code)]属性用于忽略未使用代码的警告。该示例演示了Rust如何通过use声明来简化代码并提高可读性。

2025-07-13 09:16:09 6

翻译 Rust代码示例——3.2.枚举

如果使用了类型别名,你可以通过别名来引用枚举类型中的变量。当枚举变量名非常长或太普通了,你想重新命名它,这时别名就非常有用了。enum这个关键字是你可以创建一种类型,它是一组不同变量中的某一个。这些变量也可以是struct类型。在下面impl代码块中,你可以看到Self这个别名,这是最常见的场景。为了学习更多的关于枚举和类型别名的知识,可以阅读。,从而得知这个特性什么时候固化到rust中的。

2025-07-13 09:03:50 6

翻译 Rust代码示例——3.1.结构

本文介绍了Rust中四种结构体类型的使用方法:1. 命名结构体(Person)包含命名字段;2. 单元结构体(Unit)无字段;3. 元组结构体(Pair)包含匿名字段;4. 复合结构体(Point/Rectangle)可嵌套使用。文章展示了结构体初始化、字段访问、解构赋值等操作,并给出两个练习:1. 计算矩形面积(rect_area);2. 创建正方形结构体(square)。代码示例包含#[derive(Debug)]注解、解构语法和结构更新语法等实用技巧。

2025-07-13 08:48:46 4

翻译 Rust代码示例——3.自定义类型

Rust使用struct定义结构体、enum定义枚举类型,并通过const和static声明常量。这两种数据类型创建方式提供了灵活的数据结构设计能力。

2025-07-13 08:38:40 3

翻译 Rust代码示例——2.3.数组和切片

摘要:Rust中的数组[T;N]是固定长度的同类型元素集合,存储在连续内存中,长度在编译时确定。切片&[T]则是动态长度的数组引用,包含数据指针和长度。文章通过示例展示了数组的创建、访问和内存占用,以及如何将数组转换为切片进行借用。同时演示了使用.get()方法安全访问数组元素,避免越界错误。切片操作符[start..end]允许引用数组的部分区间,空切片表示为&[]。数组越界访问会在编译时报错,而切片越界则在运行时报错。

2025-07-12 11:24:13 4

翻译 Rust代码示例——2.2.元祖

摘要:元祖是包含不同类型值的集合,使用圆括号创建。它们可用于函数参数和返回值,支持解构和索引访问。示例展示了元祖的基本用法,包括创建、访问、打印以及解构绑定。代码还包含一个Matrix结构体的定义,并建议为其实现Display接口以改变输出格式。另外提出编写transpose函数来交换矩阵元素作为练习。该函数应参考reverse函数的实现方式,将矩阵的行列互换后返回。

2025-07-12 11:11:50 2

翻译 Rust代码示例——2.1.字面量和操作

Rust支持多种数据类型字面量表示,包括整型、浮点型、字符、字符串、布尔和单元类型。整型可选用16进制(0x)、8进制(0o)或二进制(0b)前缀,数字间可插入下划线增强可读性。编译器需要明确知道字面量类型,可通过后缀如u32、i32指定。示例代码展示了算术运算、科学计数法(1e4)、布尔逻辑(&&,||,!)、位运算(&,|,^,<<,>>)等操作,其中位运算输出可用{:b}格式化。特别强调了数字分隔符(1_000_000)和类型注解的重要性。

2025-07-12 11:07:44 4

翻译 Rust代码示例——2.基础类型

Rust的基础类型包括标量类型(整型、浮点、字符、布尔和单元类型)和组合类型(数组和元组)。变量必须显式声明类型,可通过后缀、默认值或上下文推断。默认整型为i32,浮点为f64。示例展示了变量声明、类型标注、可变变量和类型推断的使用,以及数组和元组的定义方式。注意变量类型不可更改,但可通过遮蔽(shadowing)重新赋值。

2025-07-07 08:58:11 5

翻译 Rust代码示例——1.2.3.格式化

摘要:文章介绍了Rust的格式化输出机制,通过实现Display trait可以自定义不同类型数据的显示方式。以City结构体为例,展示了如何格式化输出城市名称和经纬度信息,并附带方向标识。文章还给出了Color结构体的格式化练习题,要求实现RGB和十六进制两种输出格式,并提供了三点解题提示:RGB值计算公式、逐个展示颜色通道、使用0填充格式化。最后指出可以参考std::fmt文档获取完整的格式化trait列表和参数类型说明。

2025-07-07 08:56:00 6

翻译 Rust代码示例——1.2.2.1.测试案例:List

摘要:本文介绍如何为包含Vec的结构体实现fmt::Display,重点展示了使用"?"操作符处理write!的Result返回值。示例代码通过List(Vec<i32>)结构体演示了顺序输出元素的方法,包括使用enumerate()获取索引。练习要求修改输出格式为"[0:1,1:2,2:3]",即在每个元素前添加索引值。关键点包括:1) 使用"?"操作符简化错误处理;2) 通过iter().enumerate()同时获取索引和值;3)

2025-07-05 10:26:35 5

翻译 Rust代码示例——1.2.2.显示

本文介绍了Rust中自定义格式化输出的方法。通过实现fmt::Display接口可以创建更清晰的输出格式,相比fmt::Debug更灵活。文章展示了如何为结构体Structure、MinMax和Point2D实现Display接口,并对比了Debug和Display的输出差异。同时指出泛型容器如Vec<T>无法统一实现Display,必须使用Debug。最后提出练习:为Complex结构体实现Display和Debug,输出特定格式的复数。

2025-07-05 10:01:27 8

翻译 Rust代码示例——1.2.1.调试输出

摘要:Rust中的类型需要实现格式化trait才能进行打印输出。fmt::Debug可以通过#[derive(Debug)]自动实现,适合调试使用,而fmt::Display需要手动实现。标准库类型都支持{:?}打印,使用{:#?}可获得更美观的输出格式。文章通过UnPrintable和DebugPrintable结构体对比,展示了自动实现Debug的方法,并演示了嵌套结构体(Deep)和自定义类型(Person)的打印示例。虽然Debug方便,但缺乏对输出格式的精细控制,必要时需手动实现格式化trait。

2025-07-03 16:57:49 9

翻译 Rust代码示例——1.2.格式化显示

本文介绍了Rust中std::fmt模块提供的格式化输出功能。主要讲解了format!、print!/println!、eprint!/eprintln!等宏的使用方法,展示了包括位置参数、命名参数、进制转换、文本对齐等格式化技巧。文章还对比了fmt::Debug和fmt::Display两种格式化特性,并提供了实现自定义类型显示的指导。最后提出了几个练习:修复参数缺失错误、尝试格式化自定义结构体,以及控制浮点数显示精度(如将3.141592显示为"Pi is roughly 3.142&quot

2025-07-01 17:35:58 11

翻译 Rust代码示例——1.1.注释

Rust支持多种注释方式:常规注释包括单行注释(//)和多行注释(/* */),这些会被编译器忽略;文档注释(///和//!)则用于生成HTML库文档。示例展示了注释的使用场景,包括代码解释、临时禁用代码块等。单行注释适合简短说明,而多行注释便于批量注释或嵌套使用。文档注释需要遵循特定格式,才能被正确转换为库文档。注释是代码可维护性的重要组成部分,合理使用能提高代码可读性。

2025-07-01 14:20:40 12

翻译 Rust代码示例——1、你好Rust世界

这篇文档介绍了Rust语言的HelloWorld程序实现方法。程序通过println!宏输出"Hello World!"到控制台,注释详细解释了代码结构和编译运行步骤。用户可以通过点击Run按钮或使用快捷键Ctrl+Enter来测试代码,也可用rustc命令编译生成可执行文件。文档最后提供了一个练习任务:修改代码使其输出"Hello World! I'm a Rustacean!"。该示例展示了Rust的基本语法和开发环境的使用方式。

2025-06-30 21:56:00 15

翻译 Rust代码示例——引言

本文档是一组可运行的示例来展示不同的Rust概念和标准库。为了运行这些代码,请先在本地安装Rust并下载官方文档,除此之外,你也可以在本网站下载源代码(https://doc.rust-lang.org)。

2025-06-30 13:51:42 22

原创 使用Enterprise Architect 将java类转换为数据库表时如何自动加入id、createTime、createBy、updateTime、updateBy等字段

使用Enterprise Architect 将java类转换为数据库表时如何自动加入id、createTime、createBy、updateTime、updateBy等字段

2025-05-10 09:22:08 145

翻译 手搓一个SQLITE 第一章引言和建立一个REPL(控制台界面)

我们告诉getline要保存输入内容的input_buffer->buffer和已分配缓冲区的大小input_buffer->buffer_length。它也在内存中保留了最近访问的页面数据的缓存,并决定在何时将这些页面数据写回磁盘。前端输入的是一个SQL查询,输出的是sqlite虚拟机字节码(本质上是可以直接操作数据库的一段已编译的程序)。OK,我们写了一个可以工作的REPL,接下来,我们会开发我们的命令行语言。buffer开始时是空的,getline会分配足够的内存包保存输入的内容,并将缓冲区指向他。

2024-12-16 16:37:18 48

原创 Mybatis-plus 自动填入字段失效

*** 创建时间*//*** 创建人*//*** 更新时间*//*** 更新人*/

2024-10-24 13:15:23 782

给BW的数据存储对象建立索引

为了提高SAP BW中DSO的查询效率,需要对DSO建立索引

2015-06-19

使用ActiveMQ 5.X

为了有助于使用Apache ActiveMQ 5,你也许希望从Version 5 Getting Started手册或Configuring Version 5 Transports开始。除此之外,下面还有一份手册列表:  Configure version 5 Brokers(版本5代理的配置)  Configuring Version 5 Transports(版本5端口配置)  LDAP Broker Discovery Mechanism(LDAP代理查找机制)  Version 5 Examples(实例)  Version 5 Getting Started(开始)  Version 5 Hello World(你好)  Version 5 Initial Configuration(初始化配置)  Version 5 Installation(安装)  Version 5 Performance Tuning(性能调整)  Version 5 Run Broker(运行代理)  Version 5 Topologies(架构)  Version 5 Web Samples(Web实例)  Version 5 XML Configuration(XML配置)

2012-02-14

信息系统项目管理师教程

信息系统项目管理师教程 第四章 项目可行性研究与评估 对项目所涉及到的领域、投资的额度、投资的效益、采用的技术、所处的环境、融资的措施、产生的社会效益等方面进行全面的评价。

2014-05-02

电子商务网站建设-第一章电子商务前期策划

以赢在电子商务——php+mysql电商网站设计与制作为蓝本进行的课程

2014-07-19

DB2 odbc 驱动程序 windows 64位

数据库DB2的windows操作系统64位odbc 驱动程序 windows 64位,可以提供通过odbc连接DB2数据库。

2020-11-20

Linux 网络配置与应用

Linux 网络配置与应用 以Ubuntu为系统讲述linux的网络配置与应用

2014-11-23

空空如也

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

TA关注的人

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