profile
viewpoint
Alex ZhangHanDong Beijing, China Senior Programmer/ Technical Author & Translator

ZhangHanDong/actix-workshop-rustconasia2019 63

RustConAsia 2019大会workshop

ZhangHanDong/attractive_ruby 6

Attractive Ruby(诱人的Ruby) - Ruby学习视频课程示例代码

ZhangHanDong/acts_as_local 3

fork it from Google code

ZhangHanDong/aintablog 2

Open source tumblog/aggregator.

ZhangHanDong/ansuz 2

Open source Rails-based content management that works.

ZhangHanDong/blog 2

simple RESTful rails blog using common plugins, heavily tested with RSpec

ZhangHanDong/blogcast 2

Blogcast is a better way to blog.

ZhangHanDong/bort 2

A base rails app featuring: RESTful Authentication, Will Paginate, Rspec & Rspec-rails, Exception Notifier, Asset Packager, Cap Recipe (multi-stage). Put together by Fudge to remove the need for boring project setup.

ZhangHanDong/cucumber 2

A reimplementation of RSpec's story framework, based on Treetop.

startedlupyuen/handdrawn-watchface

started time in 10 hours

issue closedZhangHanDong/tao-of-rust-codes

[第十章]10.3包管理-代码清单10-60

原书中代码错误

let filename = PathBuf::from("./input/challenge.csv");
        let csv_data = load_csv(filename).unwrap();

        assert!(csv_data.is_ok()); // 很明显此处无法调用, 上一步已使用 unwrap()

        let modified_data = replace_column(
            csv_data, "City", "Beijing"
        ).unwrap();
       assert!(modified_data.is_ok()); // 很明显此处无法调用, 上一步已使用 unwrap()

        let output_file = write_csv(
            &modified_data,
            "output/test.csv"
        );

        assert!(output_file.is_ok());

应删除中间的两处 assert! 断言

本项目中的代码正常

closed time in 11 hours

Kreedzt

issue commentZhangHanDong/tao-of-rust-codes

[第十章]10.3包管理-代码清单10-60

@Kreedzt 感谢反馈。 这里加的 assert! 就是为了展示错误,看注释说明

Kreedzt

comment created time in 11 hours

issue closedRustStudy/rust_daily_news

投稿 - 用Rust写Emacs dynamic module

Dynamic module是Emacs编辑器利用native language扩展自身功能的方法

https://citreu.gitlab.io/2020/04/05/rust-emacs-module/

closed time in 11 hours

cireu

issue commentRustStudy/rust_daily_news

投稿 - 用Rust写Emacs dynamic module

ok

cireu

comment created time in 11 hours

starteddtolnay/paste

started time in 13 days

startedm4b/goblin

started time in 14 days

startedthefuntastic/rust-tide-clock

started time in 14 days

issue commentZhangHanDong/tao-of-rust-codes

[第七章] 7.1节: 面向对象风格编程 ref 关键字

噢,可能忘记了,这个应该在模式匹配里讲一下的。只能第二版里增加了。

这个 ref 是模式匹配,匹配出 fgclolor的引用。

Kreedzt

comment created time in 15 days

issue commentZhangHanDong/tao-of-rust-codes

[第七章] 7.1节: 面向对象风格编程 ref 关键字

@Kreedzt 感谢反馈。 ref 在第二章应该提过吧?

Kreedzt

comment created time in 19 days

issue closedZhangHanDong/tao-of-rust-codes

[第6章闭包] 定义两个一模一样的闭包不一定属于同一种类型,编译器可以编译通过

P173页

代码范例

    fn different_closure(){
        let c1 = || { println!("c1");};
        let c2 = || { println!("c2"); };
        let v = [c1, c2];
        for item in v.iter() {
            item();
        }
    }

错误信息

running 1 test
c1
c2
test closure::different_closure ... ok

Rust Playground Link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=22419e75274995ff389f466c9adb01ed

closed time in a month

DaviRain-Su

issue commentZhangHanDong/tao-of-rust-codes

[第6章闭包] 定义两个一模一样的闭包不一定属于同一种类型,编译器可以编译通过

fn main() { let c1 = || { "c1";}; let c2 = || { "c2"; };

let i = "c3";
let c3 = || { i };
let v = [c1, c2, c3];

}

// 报错:

// let c3 = || { i }; // | -------- the found closure // 7 | let v = [c1, c2, c3]; // | ^^ expected fn pointer, found closure

当闭包没有任何捕获变量的时候,会被强制当成 fn函数指针使用,所以 c1 和 c2 是同类型,c3有了捕获变量,就是个匿名结构体闭包类型。

DaviRain-Su

comment created time in a month

issue closedZhangHanDong/tao-of-rust-codes

「第五章」 `5.8` , 代码清单5-60

代码错误

代码过期

现版本Rust可以编译通过

playground

closed time in a month

Kreedzt

issue commentZhangHanDong/tao-of-rust-codes

[第五章] 5.5.1节: 为结构体Foo实现方法

@Kreedzt 感谢反馈

Kreedzt

comment created time in a month

IssuesEvent

issue commentZhangHanDong/tao-of-rust-codes

「第五章」 `5.8` , 代码清单5-60

为啥关掉了?

Kreedzt

comment created time in a month

startedalula/doukutsu-rs

started time in a month

startedmicrosoft/onefuzz

started time in a month

startedrust-lang/project-error-handling

started time in a month

PublicEvent

issue commentZhangHanDong/tao-of-rust-codes

尊敬的读者朋友们,您对《Rust编程之道》第二版有什么建议和意见?期待留言

@pymongo 这些属于新加的API 了,会加上的,感谢反馈

ZhangHanDong

comment created time in a month

issue closedZhangHanDong/tao-of-rust-codes

「第四章」4.2.3 内存泄漏与内存安全 代码清单4-21

来源: 微信读书


运行结果与书中不一致

Rust Playground

错误信息

error[E0515]: cannot return reference to local variable `a`
 --> src/main.rs:3:5
  |
3 |     &a
  |     ^^ returns a reference to data owned by the current function

closed time in a month

Kreedzt

issue commentZhangHanDong/tao-of-rust-codes

「第四章」4.2.3 内存泄漏与内存安全 代码清单4-21

@Kreedzt 你好好看看原文。。。

这个例子就是要表达不能返回局部变量引用的。

Kreedzt

comment created time in a month

issue commentZhangHanDong/tao-of-rust-codes

「第四章」4.2.3 内存泄漏与内存安全 代码清单4-21

@Kreedzt 或者那个代码就是故意为了说明局部变量引用不能返回呢?看看上下文是不是,我手头没有书现在。

Kreedzt

comment created time in a month

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

@OlingCat @zuoxinyu 我这个例子的本意并不是想取巧或者其他,主要是想说明「特质」,实际上它的「屁股」是在那些「特点」上面,而不是 「事物」这边。 可能我表达能力有限吧。

upsuper

comment created time in a month

pull request commenttoml-lang/toml.io

Adds Chinese translation of v1.0.0-rc.2

@aaranxu 辛苦,大致看了下,没有啥问题。

aaranxu

comment created time in a month

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

特征,多用来表示 「一个事物不同于其他事物」的特点,有唯一性。比如生物特征识别。

特质,则是表示把事物所具有的各种「特点」单拎出来。就像「美丽」「友好」「爽快」等等这些品质,我可以给某个人组合很多这类好的坏的品质,来描述一个人。

同样,对于类型,有Copy、Sized、Sync、Send 等等 trait, 它们是可组合的。它们并不是某个类型的独有特征。

如果换成特征,咱们看看:

u32 的特征是 Copy, 那 Sized 是不是它的特征呢? u32 的特征是 Copy, i32 的 特征 也是 Copy,大家的特征都是 Copy,既然大家特征都一样,还谈什么特征?

换成 特质:

u32 拥有 Copy 特质, 也拥有 Sized 特质, i32 也拥有这俩个特质。所以,它们的行为是类似的。

upsuper

comment created time in a month

startedEmbarkStudios/puffin

started time in a month

startedtermhn/ultraviolet

started time in a month

startedlrlna/sketchin

started time in a month

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

trait 的本质是描述一种特有 「行为」,不是外部的特征的看上去像。

一只动物,它会鸭子那样嘎嘎叫,那么我们就把它看作鸭子。 而不是因为这只动物外表长得像鸭子。

这只动物,它如果也会像狗一样汪汪叫,那么我们也能把它当作狗。 而不是因为它长得像狗。

这只动物,同时具备两种行为,但它并不是鸭子,也不是狗。 它只是具备了鸭子和狗的两种特质,而不是表面的特征。

翻译,要承载读者方便理解这个 「名词」背后的意义, 是为了更好地传递 trait 的语义。

upsuper

comment created time in a month

startedNugine/const-str

started time in a month

startednapi-rs/napi-rs

started time in a month

push eventZhangHanDong/rosrust

Adnan Ademovic

commit sha 3102cc6789d0069509a22706e203a7012354aadd

Add raw subscriber

view details

Adnan Ademovic

commit sha 483907defd089e6b909132d0eab47ededc413362

Add raw publisher support

view details

Adnan Ademovic

commit sha f9deb476cef3ac9cb839c09a26fd3b7b370566e1

Merge pull request #142 from adnanademovic/raw-pubsub Add support for raw publishers and subscribers

view details

Adnan Ademovic

commit sha c918ed792ccfadf1b6b85f635860aa1ba74dcfa5

Fill default values in topics individually

view details

Adnan Ademovic

commit sha 8cc3eccc71f9ef3f2e363408a55d47c0d8920344

Bump versions

view details

Alex

commit sha 07237f74a40ce360cd796a81dc2a6d36f70ee0bd

Merge branch 'master' into master

view details

push time in a month

startedkevinmehall/rust-peg

started time in 2 months

startedalessandrod/snuffy

started time in 2 months

IssuesEvent

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

  1. 翻译软件中, 「特质」和「trait」 是可以互翻的。 而用「特征」,首先翻译到 「Features」。

翻译软件 特征 特质 trait Google feature traits 特征 Bing characteristics characteristics 特质 百度 features characteristics 特质 有道 characteristics of the trait 特征 爱词霸 features characteristics 特质 腾讯 characteristics trait (尤指人的)特征,特点 看起来基本没有能对这个词互翻的,将“trait”翻为“特征”的有两个半,翻为“特质”的有三个,且“特质”更有可能被翻译为“trait”,然而将“特质”翻译为“trait”的地方基本都将“trait”回翻为了“特征”。

另外考察一些句子的翻译:

翻译软件 implement a trait on a type create a trait object Google 在类型上实现特征 创建一个特征对象 Bing 在类型上实现特征 创建特征对象 百度 一种类型的实现 创建特征对象 有道 在类型上实现一个trait 创建一个trait对象 爱词霸 在类型上实现一个特征 创建一个特征对象 腾讯 在类型上实现特征 创建特征对象 可以看到几乎所有的翻译软件都不约而同地将“trait”翻译为了“特征”(除了有道没有翻译,以及百度翻译漏词了以外)。

所以翻译软件中可以互翻这个说法我觉得是站不住脚的,至少从几个流行的翻译网站的翻译结果来看并非如此。

  1. 中文「特质」的语义: 代表事物特有的品质。它代表的是「性质」的不同,是质的不同。 「trait」英文单词本身也是着重强调“内在的、独有的品质”。而在 Rust 中, trait 同样代表的是 一个类型 “内在,独有的品质”,比如Copy,它代表的是行为特色。 而 「特征」仅仅是指事物表面的不同,它多指 features、特性功能的不同。

从你的解释来说,我反倒觉得“特征”更合适,因为在Rust里,trait绝大多数时候就是代表一个类型提供的功能,而非更内在的东西。CopyUnpin 这类自动trait确实可能更有“质”上的含义,但如 HashIteratorDisplayDefaultRead 这类更常用到的trait显然更多地是在表示一种功能性的东西。

  1. trait 这个单词, 在已出版物《Rust 编程之道》和 《Rust 权威指南》中均以使用「特质」。除此之外,其他语言中使用到 trait 的时候也是翻译特质。这有助于消除初学者的认知负担。

我翻了一下手上的《Rust编程之道》第一版,里面的“trait”似乎至少在绝大多数地方并没有翻译。请问是否是第二版?或者是否有具体页码可以参考?《Rust权威指南》从京东上的目录看,“trait”至少在章节标题上似乎也并没有翻译出来。

其他语言中使用的翻译是否有具体的例子?我只知道C++有同样的词汇,这个词汇在cppreference如前所属翻译为了“特性”,我感觉并不是非常合适,而在微软的文档可以看到他们同样将“trait”翻译为了“特征”。

@upsuper 你不用去推翻我的理由,你只需要解释出使用「特征」更好的理由就可以了。

upsuper

comment created time in 2 months

push eventChaosStudyGroup/hp-tidb-course

blackanger

commit sha dc2ecbee338d9fad268d6222ac24eeca3ab2f0cf

add week2/3/4/5

view details

push time in 2 months

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

特质,包含了特征的含义

upsuper

comment created time in 2 months

push eventZhangHanDong/hp-tidb-course

blackanger

commit sha 650e7aacf97b51d5da8d4f404c1c24ef2c5072dd

modify

view details

push time in 2 months

push eventZhangHanDong/hp-tidb-course

blackanger

commit sha 3c38c77f2e60749fbd53324a03b69f314beaf4c5

modify

view details

push time in 2 months

push eventZhangHanDong/hp-tidb-course

blackanger

commit sha dc2ecbee338d9fad268d6222ac24eeca3ab2f0cf

add week2/3/4/5

view details

push time in 2 months

startedlupyuen/pinetime-rust-riot

started time in 2 months

startedrune-rs/rune

started time in 2 months

startedWebAssembly/WASI

started time in 2 months

startedDataDog/scipio

started time in 2 months

starteddimforge/simba

started time in 2 months

startednearprotocol/nearcore

started time in 2 months

startedferrous-systems/teaching-material

started time in 2 months

startedferrous-systems/rust-three-days-course

started time in 2 months

pull request commentrust-lang-cn/english-chinese-glossary-of-rust

翻译trait为“特征”

为什么要翻译为「特质」?

理由:

  1. 翻译软件中, 「特质」和「trait」 是可以互翻的。 而用「特征」,首先翻译到 「Features」。

  2. 中文「特质」的语义: 代表事物特有的品质。它代表的是「性质」的不同,是质的不同。 「trait」英文单词本身也是着重强调“内在的、独有的品质”。而在 Rust 中, trait 同样代表的是 一个类型 “内在,独有的品质”,比如Copy,它代表的是行为特色。 而 「特征」仅仅是指事物表面的不同,它多指 features、特性功能的不同。

  3. trait 这个单词, 在已出版物《Rust 编程之道》和 《Rust 权威指南》中均以使用「特质」。

upsuper

comment created time in 2 months

startedsogou/workflow

started time in 2 months

startedrust-analyzer/minirust

started time in 2 months

issue commentzoniony/zoniony.github.io

rust抄书之道

加油

zoniony

comment created time in 2 months

startedKreedzt/Learn-Tao-Of-Rust

started time in 2 months

issue commentzoniony/zoniony.github.io

rust抄书之道

震惊

zoniony

comment created time in 2 months

startedbrendangregg/bpf-perf-tools-book

started time in 2 months

startedenarx/enarx

started time in 2 months

startedTedDriggs/darling

started time in 2 months

startedCleverCloud/biscuit-rust

started time in 2 months

startedhediet/vscode-debug-visualizer

started time in 2 months

startedkaist-cp/cs492-concur

started time in 2 months

startedhuzecong/oi-slides

started time in 2 months

startedyewstack/facade

started time in 2 months

startedneuml/txtai

started time in 2 months

startedelsuizo/static-math

started time in 2 months

startedballista-compute/sqlparser-rs

started time in 2 months

startedgluesql/gluesql

started time in 2 months

startedpdf-rs/pdf

started time in 2 months

startedwhatisaphone/genawaiter

started time in 2 months

startedamethyst/shred

started time in 2 months

startedMaterializeInc/materialize

started time in 2 months

startedTimelyDataflow/timely-dataflow

started time in 2 months

startedntex-rs/ntex-mqtt

started time in 2 months

startedrylev/const-sha1

started time in 2 months

startedAshymad/fortraith

started time in 2 months

startedthedodd/trunk

started time in 2 months

startedrust-embedded-community/embedded-nal

started time in 2 months

startedtaiki-e/const_fn

started time in 2 months

startedxxg1413/rust-security

started time in 2 months

starteddfinity/candid

started time in 2 months

startedrylev/rust-wasm-workshop

started time in 2 months

startedrylev/learn-rust-the-hard-way

started time in 2 months

startedwenyan-lang/book

started time in 2 months

startedmkhan45/SIMple-Mechanics

started time in 2 months

startedknurling-rs/probe-run

started time in 2 months

startedgoogle/autocxx

started time in 2 months

started996icu/996.ICU

started time in 2 months

startedtwilco/kosmonaut

started time in 2 months

startedByron/gitoxide

started time in 2 months

startedZhangHanDong/hp-tidb-course

started time in 2 months

push eventrust-lang-cn/rust-by-example-cn

maiyang

commit sha b961e57c278b8572a15e317442b00e28355f3bb8

Update gen_fn.md

view details

Alex

commit sha 935eaf8c1975b533b2b78a06e3620c15de8c5b34

Merge pull request #90 from yangwenmai/patch-1 fix: structs markdown format

view details

push time in 2 months

push eventChaosStudyGroup/hp-tidb-course

blackanger

commit sha 504b03010f71b9452e0f52dbc20e5bf73a1566c9

modify

view details

push time in 2 months

more