Rust 语言学习笔记## Rust 语言学习笔记 感谢 RustPrimer 和 Rust 程序设计语言简体中文版 bradyjoestar@gmail.com ## 目录 序.....7 第一章 包管理系统与版本管理工具.....9 1.1 Crate.....9 1.2 module.....11 1.2.1 module 的可见性.....11 1.2.2 .... 57 5.2.2 依赖的详细配置: ..... 58 5.2.3 自定义编译器配置 ..... 58 5.2.4 feature 段落 ..... 59 第六章 Rust 语言高级特性 ..... 61 6.1 函数式编程 ..... 61 6.1.1 闭包 ..... 61 6.1.2 闭包捕获周围环境的方式 ..... 62 6.1.3 函数指针 .. 88 6.6.3 Borrow, BorrowMut, ToOwned ..... 89 第七章 多线程与线程通信 ..... 91 7.1 线程 ..... 91 7.1.1 不同语言的线程实现 ..... 91 7.1.2 使用 spawn 创建新线程 ..... 92 7.1.3 使用 join 等待所有线程结束 ..... 92 7.1.4 线程与 move 闭包0 码力 | 117 页 | 2.24 MB | 2 年前3
Go语言基础
Golang Fundaments## Go语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn ## 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 ## Golang-设计哲学 ## 我们需要什么样的语言 曾经 我们对包含大量代码的程序印象深刻。 - 我们努力在代码库中创建大型抽象。 这是一个有效的程序吗? - 是正确的吗? - 按时完成了吗? - 花了成本(时间、空间复杂度)? 渴望成为质量、效率和简单的冠军。 • 有自己的观点。 • 重视反省和自我检讨。 ## Go语言应该是这样的 · 易于阅读代码 - 对遗存软件友好 • 心智模型 • 生产率与性能 • 正确性与性能 • 规则 • 方便代码评审 - 完整性 - 可读性 - 简单性 - 性能 • 实用主义的语言风格 - 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 - 复古且简便的语言 • 集合了多种语言实用的语法表示 • 函数是一等公民(First-Class Functions) • 抛弃了面向对象 - 开放(几乎所有资源都在github上) ## • 语法基本特点 - C 语言的身体(语法基本类似 C 语言) – Python0 码力 | 21 页 | 851.30 KB | 2 年前3
Idris 语言文档 Version 1.3.1# 飞 Idris 语言文档 Version 1.3.1 ## Contents 1 Idris 教程 2 常见问题解答 (FAQ) 3 用 Idris 实现带有状态的系统:ST 教程 4 The Effects Tutorial 5 Theorem Proving 6 Language Reference 7 Tutorials on the Idris Language mmons.org/publicdomain/zero/1.0/deed.zh Idris 教程 本文档为 Idris 的教程,它简单介绍了如何用 Idris 语言编程。文档中覆盖了该语言的核心特性,并假定你至少熟悉一门函数式编程语言,如 Haskell 或 OCaml。 注解:Idris 文档已按照 创作共用 CC0 许可协议 发布。因此根据法律规定,Idris 社区 已放弃对 Idris 文档的所有版权以及相关或邻接的权利。 文档的所有版权以及相关或邻接的权利。 关于 CC0 的更多信息参见:https://creativecommons.org/publicdomain/zero/1.0/deed.zh ### 1.1 引言 在传统编程语言中,类型与值之间有明确的区分。例如在 Haskell 中,下面这些类型分别表示整数、字符、字符列表以及任意值的列表: • Int, Char, [Char], [a] 与此对应,下面这些值分别为上述类型的成员:0 码力 | 224 页 | 2.06 MB | 2 年前3
PlantUML 1.2021.3 语言参考指引绘制的 UML  PlantUML 语言参考指引 (Version 1.2021.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 架构图 规范和描述语言 (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## c/345c7798228083c9f970b76c03e7a0e1/p4_2.jpg) ### 1.3 在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字 as 给参与者定义别名。 @startuml Alice -> "Bob()" : Hello "Bob()" -> "This is very\nlong"0 码力 | 398 页 | 4.22 MB | 2 年前3
PlantUML 1.2021.1 语言参考指引PlantUML 语言参考指引 (Version 1.2021.1) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 状态图 • 定时图 同时还支持以下非 UML 图: • JSON Data • Network diagram (nwd) · 线框图形界面 • 架构图 规范和描述语言 (SDL) (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 3/5d939329963125474656175552027d1e/p4_1.jpg) ### 1.3 在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字 as 给参与者定义别名。 @startuml Alice -> "Bob()" : Hello "Bob()" -> "This is very\nlong"0 码力 | 376 页 | 4.00 MB | 2 年前3
PlantUML 1.2020.22 语言参考指引jpg) PlantUML 语言参考指引 (Version 1.2020.22) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 · 状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: • JSON Data · 线框图形界面 • 架构图 • 规范和描述语言 (SDL) • Ditaa • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeX Math 符号的数学公式 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 a/691a8040bbe897941668dcd70c6d4871/p4_1.jpg) ### 1.3 在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字 as 给参与者定义别名。 @startuml Alice -> "Bob()" : Hello "Bob()" -> "This is very\nlong"0 码力 | 295 页 | 3.08 MB | 2 年前3
PlantUML 1.2019.3 语言参考指引p1_1.jpg) PlantUML 语言参考指引 (Version 1.2019.3) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 ·状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: · 线框图形界面 · 架构图 • 规范和描述语言 (SDL) • Ditaa diagram diagram · 甘特图 • 以 AsciiMath 或 JLaTeXMath 符号的数学公式通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 <- 和 <--,这不影响绘图,但可以提高可读性。注意:仅适用于时序图,对于其它示意图,规则是不同的。 8/860878bc8f88b6993946457623c43708/p4_1.jpg) ### 1.3 在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字 as 给参与者定义别名。 @startuml Alice -> "Bob()" : Hello "Bob()" -> "This is very\nlong"0 码力 | 157 页 | 1.78 MB | 2 年前3
PlantUML 1.2019.2 语言参考指引p1_1.jpg) PlantUML 语言参考指引 (Version 1.2019.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 ·状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: · 线框图形界面 · 架构图 • 规范和描述语言 (SDL) • Ditaa diagram diagram · 甘特图 • 以 AsciiMath 或 JLaTeXMath 符号的数学公式通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 <- 和 <--,这不影响绘图,但可以提高可读性。注意:仅适用于时序图,对于其它示意图,规则是不同的。 0/ca608e6feda30bfd911bbd53d4aff0d4/p4_1.jpg) ### 1.3 在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字 as 给参与者定义别名。 @startuml Alice -> "Bob()" : Hello "Bob()" -> "This is very\nlong"0 码力 | 157 页 | 1.78 MB | 2 年前3
Weblate 4.7.2 用户文档API ## Administrator docs 配置手册 • Weblate 部署 • 升级 Weblate 备份和移动 Weblate • 身份验证 访问控制 • 翻译项目 • 语言定义 持续本地化集成 翻译许可 - 翻译许可 • 翻译进程 检查并修正 机器翻译 附加组件 - 翻译记忆库 - 配置 - 配置的例子 - 管理命令 - 公告 - 组件列表 Routing Table • Python 模块索引 ## Weblate 基础知识 ## 项目和组件架构 在 Weblate 中,翻译组织成为项目和组件。每个项目可以包含几个组件,并且组件包含各个语言的翻译。组件相应于一个翻译文件(例如 GNU_gettext 或安卓字符串资源)。项目帮助您将组件组织为逻辑的组(例如,将一个应用中使用的所有翻译分组)。 默认情况下,每个项目内都有对跨组件传播的 languages you want to translate by clicking the button to make them available too. ## 语言 ## 界面语言 请选择你想要在用户界面中展示的语言。 ## 已翻译的语言 Choose which languages you prefer to translate, and they will be offered on the0 码力 | 774 页 | 11.41 MB | 2 年前3
2.2.3 Go语言的抢占式调度## GCN ## Go 语言的抢占式调度  曹春晖 资深 Gopher  Go 程序的启动 01 GMP 的本质 02 调度循环的实现 03 老版本的抢占实现 04 新版本的抢占实现 05 当前的 Go 语言还有哪些问题 06 ## 第一部分 ## Go 程序的启动 ## 编译过程 ### Go 程序 hello.go 的编译过程: ●●● package main func main() { println("hello G:goroutine,一个计算任务。由需要执行的代码和其上下文组成,上下文包括:当前代码位置,栈顶、栈底地址,状态等。 M: machine,系统线程,执行实体,想要在 CPU 上执行代码,必须有线程,与 C 语言中的线程相同,通过系统调用 clone 来创建。 P:processor,虚拟处理器,M 必须获得 P 才能执行代码,否则必须陷入休眠(后台监控线程除外),你也可以将其理解为一种 token,有这个0 码力 | 44 页 | 7.43 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













