摘要: 虚拟机上安装 hadoop+hive+presto 阅读全文
posted @ 2017-06-05 15:38 正在战斗中 阅读(4098) 评论(0) 推荐(0) 编辑
摘要: 通过信道(channel)传递消息是rust的解决线程之间通信的2个工具之一,另外1个是共享内存状态。 注:channel有多种译法,有的地方翻译为通道、频道,此处循例称为“信道" rust推出这个,明显地是因为受到go之类的影响。 在书籍中,作者提到go编程文档中的内容: 不要通过共享内存来通讯; 阅读全文
posted @ 2025-01-09 19:21 正在战斗中 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 如书本作者所言,并发编程在绝大部分语言中,都是相对复杂和困难的。 所以,涉及的内容会相对多一些,所涵盖的内容绝对不是几篇文章所可以容纳的。 权当一个乱弹琴! 和此系列的其它文章一样,本文的内容绝大部分来自于相关书籍,本人做了一些摘裁的工作,取我所需! 一、无畏并发 * 1.并发(concurrent 阅读全文
posted @ 2025-01-08 19:08 正在战斗中 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这个章节主要是为了引出弱引用这个奇怪的概念。 说实在,这个没有什么太好写的,因为内容比较晦涩难懂! 在其它语言中,也常常存在所谓循环引用问题,和大部分问题一样,在其它语言中这些基本上都不是问题。但是在rust中,这是一个致命的问题。 例如有a,b两个点,a指向b,b指向a。 如果根据截止当前的知识( 阅读全文
posted @ 2025-01-07 20:35 正在战斗中 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 一、前言 作为初学者,在只学习了前面几个章节的时候,我以为rust的所有权规则和它说的是一样的。 但实际上,rust发明人并没有遵循这个规则。按照我的想法,应该是因为如果坚持那样可能编写某些代码会太痛苦,甚至可能根本无法实现。 “可能根本无法实现”这是一个没有去证实的猜想。 不过,我很坚信:如果还是 阅读全文
posted @ 2025-01-05 10:57 正在战斗中 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 一、前言 智能指针为什么称为智能指针? 大概因为它所包含的额外功能。 这些额外的功能使得编码或者运行时让指针看起来更有效、并体现某些“智”的特征,所以,我猜测这应该是rust发明人这么称呼此类对象为智能的原因。 据前面有关章节所述,我们知道智能指针多基于结构体(struct)扩展实现。 我们知道,s 阅读全文
posted @ 2024-12-31 17:33 正在战斗中 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Box 原意是盒子,实际生活是作为容器使用。 Rust没有称为Container,而是称为Box,体现了他们一贯的随意性。 不过Box这个词汇倒是可以反映盒子指针的特点:就是一个容器,没有什么特别的。 一、盒子指针定义 #[lang = "owned_box"] #[fundamental] #[s 阅读全文
posted @ 2024-12-28 09:52 正在战斗中 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 本文没有什么需要特别详细阐述的内容,基本都是一些基础性的概念和一些空洞的定义。 一、基本概念 指针 -拥有一个指向一个堆数据的地址的变量。本身是变量,但其数据就是一个地址。 智能指针-一种特别的指针(也是变量),除了指向数据的地址,通常还具有元数据和其它功能。 智能指针通常使用结构体实现。智能指针不 阅读全文
posted @ 2024-12-27 14:50 正在战斗中 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 和大部分语言一样,cargo也可以创建一个工作空间,以便可以包含多个二进制单元和库单元,从而构建较为复杂的工程。 构建这样一个空间空间主要依赖两个手段:Cargo.toml和单元之间的目录结构 从效果上看,rust的Cargo在工作空间上的管理和maven大体相似,但是还不如maven那么的人性化。 阅读全文
posted @ 2024-12-15 11:38 正在战斗中 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 本文简要介绍如何编译和发布单元包(crate)。 很可惜的是,找了一会,没有发现可以发布到除了Crates.io之外的地方。 可能是我没有找到,也可能仅仅是因为我本人仅是初学者。希望国内的大学和其它机构能够创建那么一个国内的库,避免哪天封禁后,无处可去。 本文对应相关书籍的第十四章节的第1,2子章节 阅读全文
posted @ 2024-12-12 20:29 正在战斗中 阅读(30) 评论(0) 推荐(0) 编辑
摘要: Iterator(迭代器)是一个比较常见的概念,大部分语言都有。大部分语言实现迭代器的逻辑并没有特别的。 看完了有关内容,作者的意思是:rust的迭代器和匿名函数一样,都是为了提供时下流行的函数式编程。 此二者为rust实现零成本抽象提供了不少的贡献。 本部分概念比较多,如果是编程初学者可能会有点吃 阅读全文
posted @ 2024-12-10 19:14 正在战斗中 阅读(39) 评论(0) 推荐(1) 编辑
摘要: 在编译后,所谓的闭包是编译为单独的函数,所以原文的作者也把closure称为函数。 因此,本文也称为函数。这个更好理解的一个概念。 一、概念 在某个程序体内定义的一段代码,具有参数(可选)和程序体,但不具有名称,实现函数作用,这样的代码称为匿名函数(closure)。 匿名函数这个东西,现在各个语言 阅读全文
posted @ 2024-12-08 13:11 正在战斗中 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 我们相当部分的应用还是老式的单体程序,我还是很满意的,毕竟已经能够满足了有关要求,又减轻了各方的压力。 虽然国产化在推进,但是部分客户还是在使用windows服务器,无论是政府还是私营的。 说实话,windows是一个不错的平台,我们公司的OA系统如果不是为了维护,可以几年都不动,运行得好好的,实在 阅读全文
posted @ 2024-12-03 19:22 正在战斗中 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 本文内容,基本同原书本,只是稍作了一些改动: 可以输入 --help展示用法 如果文件超过1MB,则会采用逐行查找的方法,避免内存不足 整个程序包含个文件:main.rs,lib.rs 一、代码 闲话少叙,直接上代码。 main.rs /** * 完全模仿书本的例子 * * 运行示例 * cargo 阅读全文
posted @ 2024-12-03 18:06 正在战斗中 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 测试从来不是一件简单的事情,我本人深有体会! 书本作者引用了很重要的话:软件测试是证明 bug 存在的有效方法,而证明其不存在时则显得令人绝望的不足 (Edsger W. Dijkstra 在其 1972 年的文章【谦卑的程序员】(“The Humble Programmer”)) 注:Edsger 阅读全文
posted @ 2024-11-27 19:26 正在战斗中 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 生命周期,这是在"引用和借用“章节就提到的概念,大意是每个变量具有其作用域范围。 所以,我个人更愿意理解为作用范围。 因为它不像java的变量那样和时间有较为明显的关联,毕竟java的变量会被GC销毁。 一、 生命周期注解概念引入 在原文中,作者是通过两个例子解释生命周期问题 fn main() { 阅读全文
posted @ 2024-11-26 17:22 正在战斗中 阅读(30) 评论(0) 推荐(0) 编辑
摘要: Trait 本意是特性,特质,特征等等,其实主要指人的性格特征。不明白为什么rust的创造者不使用feature这样单词。 如作者所言: Note: Traits are similar to a feature often called interfaces in other languages, 阅读全文
posted @ 2024-11-23 11:52 正在战斗中 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 这是和大部分的语言差不多的一个概念,只不过实现上有一些区别而已。 所以,如果学过java,c#,c++,那么这应该很好理解。 虽然如此,还是有不少内容需要记录,只不过内容有一点小多。 注意:这是入门级别内容,只能涉及到一些基本的方面。 一、定义 英文 Generic /generics, 中文翻译为 阅读全文
posted @ 2024-11-21 15:54 正在战斗中 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 在书籍中,中文译者翻译为错误,这是因为原文是"Error"。 但在很多语言中,都是书写为异常。 一、概述 rust的错误处理与众不同,前文已经提及:大家称为异常,它称为错误。 不可恢复的错误,可以大体称为panic(恐慌)! 太率性了.... 那么我们的问题是:除了一些的确不可处理的异常,rust是 阅读全文
posted @ 2024-11-19 18:30 正在战斗中 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 这里介绍的哈希映射表(HashMap)并非是java那样的万用表,限制很大。 不过,话说回来,rust应该是有类似java那样的映射表,不过不是这个哈希映射表。现在先谈论哈希映射表吧。 一、构成和定义 HashMap 是最不常用的,所以并没有被 prelude 自动引用。标准库中对 HashMap 阅读全文
posted @ 2024-11-18 18:47 正在战斗中 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 按照作者的意思,字符串不是看起来那么简单! 的确,字符串在大部分语言中,都不是看起来那么简单! 字符串的内容看起来很多,又很少! 多是因为涉及到编码、构成、方法(有许多方法)还有字符串切片。 少是因为,其实和java等语言其实没有大的区别。 一、构成 rust的字符串内部是 vec(u8)+方法,看 阅读全文
posted @ 2024-11-18 17:08 正在战斗中 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 一、纲要 定义 1. new Vec::new(); 2. 采用宏 vec![1, 2, 3]; 操作 0.读取 索引语法或者 get 方法 ,注意索引从0开始. vec[0]或者vec.get(0) vec[i] 不会改变所有权,但如果发生越界,则会导致程序终止 get(i) 返回的是一个Opti 阅读全文
posted @ 2024-11-14 17:51 正在战斗中 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 总体上,也没有什么特别的地方,和其它语言比较起来。 我们可以看懂熟悉的字眼:包括、模块、use、公共等等 如果是英文,则需要知道crate、pub。 本章节对应相关书籍的第七章节. 一、一个rust可执行程序的大体结构 就本章节而言,尚未接触到一个非常复杂的工程结构,据说有什么工作空间。 不考虑工作 阅读全文
posted @ 2024-11-13 18:56 正在战斗中 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 枚举是十分特别的类型,是因为和大部分语言中看起来不太一样。 最大的不同之一在于:允许每个成员具有不同的类型的属性 注:本文内容根据<<The rust programmming Language>>有关章节编写 如果没有特别说明,"rust学习"系列基本上都是根据此书编写,不再在后续的篇幅中说明 一 阅读全文
posted @ 2024-11-11 18:31 正在战斗中 阅读(48) 评论(0) 推荐(0) 编辑
摘要: rust的struct结构体是一个不错的东西,不像java,后者在17版本左右才可用。 有许多语言都有类似的东西,例如pascal有record。 在rust中,struct大体等于java的class,c#的class。 本文主要根据<<The rust programming language> 阅读全文
posted @ 2024-11-06 18:53 正在战斗中 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 入门者,在搭建好环境好之后,接下来得先熟悉工具。有了趁手的工具,学起来才会快得多! 作为入门者,非常希望能够单独运行一个rust脚本,而没有必要一个练习就建立一个项目,或者在一个笨重的ide中运行一个脚本文件。 在https://crates.io上,我们可以找到各种各样的工具,有两个可以关注: c 阅读全文
posted @ 2024-11-05 18:46 正在战斗中 阅读(115) 评论(0) 推荐(1) 编辑
摘要: rust的控制语句和大部分语言没有什么区别,都是熟悉的for,while,loop,if。 比较不同的是,在绝大部分非常流行的语言中都有的switch,rust是没有的。 诸如c/c++,java,javascript,c#。连PL/SQL都有case when语句。 一、基本的for、while、 阅读全文
posted @ 2024-11-04 09:17 正在战斗中 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 在<<The rust programming language>>的中译版<<rust权威指南>>中,作者用了30页的篇幅来阐述这个问题。 如作者所言,所有权是学习rust语言的基础,不掌握这个,无需继续往下,所以,这是初学rust就必须会的。 正是所有权概念和相关工具的引入,Rust才能够在没有 阅读全文
posted @ 2024-11-01 17:53 正在战斗中 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 本文内容摘自<<The rust programming language>>,作者:美国的steve klabnik ,Carol nichols。 中国工信出版社2020年出版,但在国外据说是2018年出版的。 关于本人的入门大部分来自此书。 不过此书由于出版的时间较早(假定是2018),那么那 阅读全文
posted @ 2024-10-29 16:21 正在战斗中 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 对于绝大部分JAVA工程师而言,大部分的关键字也是能够看懂的,但还是相当一部分比较不常见的关键字,妨碍了代码阅读。 本文力图收集一些个人认为在CRUD机械工作中可能比较少见的一些关键字/保留字。 此类关键字主要用于修饰方法和类。 收集过程会持续一段时间,现在暂时没有时间也没有必要找出个人为人需要整理 阅读全文
posted @ 2024-10-21 15:12 正在战斗中 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 最近希望学习一些新的,选择了rust. 本篇介绍怎么搭建一个非常简单的windows开发环境,以及如何使用cargo 命令 1、搭建开发环境(windows11) a.登录官网 https://www.rust-lang.org/tools/install 一看就明白,此处略。 b.安装rustup 阅读全文
posted @ 2024-10-16 18:32 正在战斗中 阅读(247) 评论(0) 推荐(0) 编辑