rust语言_学习笔记
转载注明来源: 本文链接 来自osnosn的博客,写于 2023-12-10.
安装 rust
cargo 的 config 设置
- 更换 ustc 源,使用代理。设置缺省registry。见【rust cargo 配置】。
crate库
-
搜索
- cli 命令行参数解析 【clap】
应该还有更简单小巧的库。【Collected benchmarks for arg parsing crates written in Rust】- getopt, 基本符合POSIX参数解析规则。似乎仅支持短参数。
- getopt3, 符合GNU参数解析规则。似乎仅支持短参数。
- clap_lex,用两个循环去match。短参数支持合并写法 "-ab"。
- lexopt,和libc中的getopt很像。短参数支持合并写法 "-ab"。(我用这款)
- xflags,用声明宏。 "-a -b"不支持合并写法 "-ab"。
- argh,用自定义宏(#derive). "-a -b"不支持合并写法 "-ab"。
- gumdrop,挺高级的。
- pico-args,似乎不好用。
- 异步,多线程
- 【tokio】
- json解析
- image库
- sqlite3
- 【jgallagher/rusqlite】【sqlite3】
- ini
- light_ini, ini_core, tini, ini_lib
- gui
- fltk
- 把文件/目录打包到执行文件中
- embed
Rust中文文档
- 看其中的【Rust 程序设计语言】,好难。
- rust语言 本身似乎不复杂,"所有权"也不难理解。
- "泛型",也好理解。"生命周期",也好理解。
- "Trait",比较复杂,没看明白做啥用的。
- "宏"好复杂。又是一种独立的语法。
包含,用macro_rules!的声明宏,和三种过程宏 (自定义宏 #[derive],类属性宏,类函数宏)。
笔记
创建项目
- 修改
~/.cargo/config
。更换 ustc 源,使用代理。设置缺省registry。见【rust cargo 配置】。 - 选择一个目录,
cargo new lexopt-test
创建一个项目。看【cargo-new(1)】 - 搜索 crate,
cargo search lexopt
,看【cargo-search(1)】 - 添加 crate "lexopt"
- 方法1:执行
cargo add lexopt
,看【cargo-add(1)】
会自动获取最新的版本,并写入 Cargo.toml- 删除create,执行
cargo remove lexopt
- 查看本项目使用的crate,
cargo tree
- 删除create,执行
- 方法2:在 docs.rs 中搜索 lexopt,找到它的版本号。
手工修改 Cargo.toml,在[dependencies]
下面,插入一行,
lexopt = "0.3.0"
然后执行cargo update
,把这个crate 拉取下来。- 删除crate,编辑 Cargo.toml 删除lexot那行。执行
cargo update
即可。
- 删除crate,编辑 Cargo.toml 删除lexot那行。执行
- 方法1:执行
- 编写
src/main.rs
使用这个 crate。
从 【lexopt】 抄它的 example。 cargo clean
清理缓存。cargo check
检查。cargo fmt
格式化源码文件。cargo build
编译。cargo vendor pkg
把当前项目依赖的所有包,下载到当前目录的pkg目录中。
不要下载到 ./ 当前目录,会把当前目录中的所有文件清空。
编程中的问题记录
- 出现
note: #[warn(non_snake_case)] on by default
警告。
你的项目名称不是蛇形命名。即不是 "单词+下划线+单词" 的命名方式。
在 src/main.rs 的第一行加入#![allow(non_snake_case)]
允许非蛇形命名,即可。 - 查找 Some(),Option()支持的methods。比如 ok_or(), map_or(), unwrap_or()
去 【doc.rust-lang.org/std】 ,搜索 Some 或 Option,就能找到很多教程中没有介绍的methods。
其他
----end----
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/17913222.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .
标签:cargo,语言,rs,lexopt,crate,笔记,搜索,rust From: https://www.cnblogs.com/osnosn/p/17913222.html