kaisery / trpl-zh-cn Goto Github PK
View Code? Open in Web Editor NEWRust 程序设计语言(2021 edition)
Home Page: https://kaisery.github.io/trpl-zh-cn/
License: MIT License
Rust 程序设计语言(2021 edition)
Home Page: https://kaisery.github.io/trpl-zh-cn/
License: MIT License
在15.5节,listing15-23后面的一段。
One important part of this code is that the Messenger trait has one method, send, that takes an immutable reference to self and text of the message.
这些代码中一个重要部分是拥有一个方法 send 的 Messenger trait,其获取一个 self 的可变引用和文本信息。
这里应该是不可变引用,是个笔误吧。
不清楚是什么时候开始, https://kaisery.github.io/trpl-zh-cn/ 这里的所有 font-awesome 图标都不显示了,导致页面上方导航按钮不显示,代码块右上角本来应该有的运行按钮不显示。 F12 可以看到浏览器请求了 https://kaisery.github.io/trpl-zh-cn/_FontAwesome/css/font-awesome.css 得到了 404 。
实在不是很熟悉 mdbook ,翻 repo 没找到可能相关的地方,对比 commit history 也没看出来是哪里出的问题...
感觉ch19-02中的lifetime bound可译为生命周期绑定,从译文可以很容易理解是把一个类型的生命期绑定到至少和另一个类型的生命周期一样长.
注意英文原版中i32 已改成了u32
rust-lang/book@f4bce88
PDF 25页
Cargo 有一个机制来确保任何人在任何时候重新构建代码
这里的"确"字是日文字体。
详见:
https://www.google.com/search?q=%E7%A1%AE+%E6%97%A5%E6%96%87&ie=utf-8&oe=utf-8&client=firefox-b-ab
特征,特点,特性,使用时最顺口的就是 个性 性子,各种例子很好陈述, 配合的动词毫无疑问就是赋予
https://kaisery.github.io/trpl-zh-cn/ch10-03-lifetime-syntax.html#生命周期省略
下文中应该是 “换句话说” 而打成了 “话句话说”
https://kaisery.github.io/trpl-zh-cn/ch19-03-advanced-traits.html
#newtype-模式用以在外部类型上实现外部-trait
而孤儿规则组织我们直接这么做
---阻止
第三行 写成前节的了
目前TRPL英文版基本上已经稳定下来,中文翻译应该也会很快稳定下来。 目前我认为最有用的文档并且没有中文翻译的包括
”生命周期”一般指的是 lifecycle
把 lifetime 也翻译为生命周期是否有歧义?
1.有没有意愿使用Vuepress将.md打包成静态html文件的计划?这样会很方便部署的。
2.github上的站点墙内访问挺慢的,所以我可以提供一个看这个文档的站点吗?(将打包的静态文件放到我的网站上)。
RefCell<T>
和内部可变性模式在此章节的以下内容中,存在错别字: 连 => 两
示例 15-26:在同一作用域中创建连个可变引用并观察
RefCell<T>
panic
英文版中不存在 ch01-00-introduction.md 文件,但是在中文版中存在此文件,是否可以删除?
如果可以删除的话,我就提交一个 pr。
ch09-02章节的示例标号与原版不一致
这样导致了一些问题,比如:
其功能再一次与示例 9-5 和示例 9-5 保持一致,不过这是一个与众不同且更符合工程学的写法。
https://kaisery.github.io/trpl-zh-cn/ch15-02-deref.html
#函数和方法的隐式解引用强制多态
称为可能 -> 应该是 成为可能 吧
Slices
Where is capacity
in world?
关于对象安全的规则第一条,原文为
“The trait does not require Self to be Sized”
应译为
“该 trait 不能要求 Self 是 Sized”
而非现有译文中的
“该 trait 要求 Self 不是 Sized”
我看的时候纠结了半天。
另外,17-02还有不少地方很难懂,看了原文才知道是什么意思。建议改进一下。
src/ch04-01-what-is-ownership.md
“这个表现形式看起来 并不像 图 4-5 中的那样,它是如果 Rust 也拷贝了堆上的数据后内存看起来是怎么样的。”
它是 => 但是/那么
翻译中是这样:
Cargo 默认会创建一个库 crate 除非指定其他项目类型,所以如果不像一直以来那样加入 --bin 参数则项目将会是一个库:
但是执行cargo new --help
--bin Use a binary (application) template [default]
--lib Use a library template
指令帮助说明,bin才是默认的方式。
没看过英文版本,不知道是翻译问题,还是英文版就错误。
如题
平时对技术文档翻译根本不会有这种奢望,但感觉这项目整体质量不错,只是稍微有些欧化中文的影子。我和一位朋友有兴趣针对风格问题试着校对翻译,在开始之前来和项目维护者们打声招呼,确认下是否愿意接受此类修改。毕竟对风格的看法因人而异,修改后反而会和原文的字面意思有所偏差,如果维护者反对的话我们 fork 时也算有个心理预期。
个人理解,Rust的设计**是,Trait组合胜于模板继承(类继承),也就是常说的组合胜于继承,因此只有Trait而没有Class。如果需要提到这一概念,使用“特质组合”比“特征组合”(Rust社区似乎倾向于 特征 这个翻译)要更顺口。 而且 Trait 中可以包含默认实现, “特质”听起来像是有重量的东西,而“特征”、“特性”则更像没有质量的抽象概念。
代码中的很多注释都是原文的,是否考虑也翻译一下?
powershell设置环境变量应该是
$env:CASE_INSENSITIVE=1
但是文中是
$env.CASE_INSENSITIVE=1
比如 ../std/net/enum.IpAddr.html
改成
https://doc.rust-lang.org/std/net/enum.IpAddr.html
大大好厉害 膜拜
https://kaisery.github.io/trpl-zh-cn/ch16-01-threads.html
#线程与-move-闭包
原文:If we were allowed to run this code, there’s a possibility the spawned thread would be immediately put in the background without running at all.
翻译:这段代码可以运行,而新建线程则可能会立刻被转移到后台并完全没有机会运行。
原文是假设这段代码能运行,翻译后为肯定能运行的意思,感觉不大合适。(实际代码是不能运行)
个人理解为:
假如这段代码能正常运行的话,就是可能这个线程被创建后立即移到后台并没有运行。
原文URL地址: https://doc.rust-lang.org/nightly/book/second-edition/ch02-00-guessing-game-tutorial.html#handling-invalid-input
原文内容: Switching from an expect call to a match expression is how you generally move from crash on error to actually handling the error.
翻译版URL地址: https://kaisery.github.io/trpl-zh-cn/ch02-00-guessing-game-tutorial.html
翻译内容: 从expect调用切换到expect语句是如何从遇到错误就崩溃到真正处理错误的常用手段。
应该翻译为: 从expect调用切换到match语句是如何从遇到错误就崩溃到真正处理错误的常用手段。
我觉得这个文档去年的时候就翻译的差不多了。
我觉得应该更新下各种说明了。这样也比较利于分享。
注册更像是账号登录一类的操作, 而"package registry site" 更像是在该网站上面进行登记, 声明已经有一个名字为name
的crate
包, 并不允许重名.
文章里用来指代对应代码块的称呼,类似论文里“图 3-1”之类的。歪果仁说 "list 10-1","list"应该更类似于“便签条”,“收据单”的意思吧。“列表”这个称呼总让我出戏,其实本来打算建议“码单”来着,不过好像更出戏,额
https://kaisery.github.io/trpl-zh-cn/ch15-06-reference-cycles.html
#可视化-strong_count-和-weak_count-的改变
因为因为现在 leaf 又是 Rc 唯一的引用了。
--- 多了一个因为
请您与我QQ联系好吗?3442853561
留意到issues中有些源码中已经修复, 但是gitbooks.io仍然没有进行更新, 因此提出该需求, 以节约贡献者们的时间.
https://kaisery.github.io/trpl-zh-cn/ch10-03-lifetime-syntax.html#结合泛型类型参数trait%20bounds%20和生命周期
这个是列表 10-21 中那个返回两个字符串 slice 中最长者的longest函数,不过带有一个额外的参数ann。ann的类型是泛型T,它可以被放入任何实现了where从句中指定的Display trait 的类型。这个额外的参数会在函数比较字符串 slice 的长度之前被打印出来,这也就是为什么Display trait bound 是必须的。因为生命周期也是泛型,生命周期参数'a和泛型类型参数T都位于函数名后的同一尖括号列表中。
最后一句话改成如下比较好,不然此处一个 ”因为“ 容易引发歧义让读者以为是在解释上一句话中 ”为什么 Display trait bound 是必须的“。
修改:因为生命周期也是泛型,#(所以)生命周期参数'a和泛型类型参数T都位于函数名后的同一尖括号列表中。
官方 repo https://github.com/rust-lang/book/tree/master/2018-edition 已经开坑了,是否考虑同步更新翻译?
scalar 早年翻译 标量,实在是有点胡扯的嫌疑。没有几个人记得与矢量相对应。
现在不少人已经采用 纯量 一词。或者 无向量。
简单量,简单值,简单数,类似的名词 最容易让人理解。
名词是人类战争的根源。
再所谓,名不正则言不顺!
The following code shows how you’d use each one in a let statement:
// subtraction
let difference = 95.5 - 4.3;
你说介绍个数字运算符吧,老实的介绍也就罢了,和 let 语句有毛线的关系?我还以为是介绍 let 语句的
代码部分字体,感觉挺好看的
原文是:现在我们已经在一个具体的例子中展示了引用的声明周期位于何处
,此处的“声明”应该是“生命”。
https://kaisery.github.io/trpl-zh-cn/ch19-00-advanced-features.html
此处 supertrait 译为 炒鸡 trait 而此前出现的都为 父 trait
敢问这是有意而为之调侃一下 还是怎么样 总之建议统一或备注
看了下后文有备注 超(父) 这种就比较好
我就自行关闭了
https://kaisery.github.io/trpl-zh-cn/ch13-03-improving-our-io-project.html#使用迭代器并去掉clone
main 方法中丢失代码片段
对于该项目中从clone修改为迭代后原先的语句已不能使用
顺便附上完整版:
fn main() {
let mut stderr = std::io::stderr();
let config = Config::new(env::args()).unwrap_or_else(|err| {
writeln!(
&mut stderr,
"Problem parsing arguments: {}",
err
).expect("Could not write to stderr");
process::exit(1);
});
if let Err(e) = minigrep::run(config) {
eprintln!("Application error: {}", e);
process::exit(1);
}
}
Link: https://kaisery.github.io/trpl-zh-cn/ch15-05-interior-mutability.html#refcellt拥有内部可变性
括号内应该为 Halting Problem
重复出现两次 停机问题
另外 Halting Problem 可以 link 一下 https://brilliant.org/wiki/halting-problem/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.