Open upsuper opened 5 years ago
lifetime还是生命周期更贴切,因为Rust里lifetime 最主要是要关注引用在函数之间的传递安全。在不同的函数调用里传递,那就是“周期”,“生命的轮回”。
个人觉得使用“生命周期”更好。
一方面这个单词本身中文有这个意思,在英文中解释也差不多表达一样的意思。 另一方面“生命周期”这个词语其实在中文计算机语言中已经是出现多年的词汇,也就是在 Rust 出现之前已经有相关的表达中文表达,比如 C++ 就有一模一样的这个表达,也是代表这个概念。类似地,英文的 “object” 这个词翻译成 “对象” 其实也不怎么准确,但是已经约定俗成后,现在所有翻译的 object 都使用 对象,而不是翻译成 “物件” 等其他的翻译。
英文翻译成中文,最大的考量是惯例,如果是已经有约定俗成的译法,而且较为通行的话,那么即便后来可能会有更好的表达,也不会直接说改变成新的词语,比如“Holmes” (中文 “福尔摩斯”)是在民国时期就翻译的,但是对后来的普通话来说这个翻译并不合适,只是因为这个已经在在大量的书籍和报纸中使用这个名称了,可以说今天已经是没有异议的翻译了。
而 lifetime 这个词语,在 C++ 11 的时候就已经有翻译成中文,而且在中文计算机术语中也较为流行了,所以对于 Rust 来说最好也是沿用历史的译法,因为意思概念都是一样的。
宗旨就是我们并不是创造新的词汇,而是尽可能采用已经广泛使用的惯例译法。
支持“生命周期”,这个词在业界已经算是很通用的词了。
C++ 的相关文档: 生存期(cppreference) https://zh.cppreference.com/w/cpp/language/lifetime 生存期(微软官方文档) https://docs.microsoft.com/zh-cn/cpp/c-language/lifetime?view=vs-2019
生存区间?学了rust感觉这个lifetime和数学的区间挺像,不过感觉翻译成生存期更好
C++ 的相关文档: 生存期(cppreference) https://zh.cppreference.com/w/cpp/language/lifetime 生存期(微软官方文档) https://docs.microsoft.com/zh-cn/cpp/c-language/lifetime?view=vs-2019
对于 lifetime 这个单词我在多本 C++ 的书籍中都有看过,均翻译成 “生命周期”,以下举出几本最有说服力的图书,以下只列出 lifetime(生命周期)首次出现的位置,我翻过其他位置,书中都是统一翻译成生命周期,大家可以仔细考证: 《C++ Primer》中文版第5版,184页,章节:6.1.1 局部对象; 《C++ 程序设计语言》(第1~3部分)原书第4版的中文版,55页,章节:3.2.1.2 容器; 《C++ Primer Plus》(第6版)中文版,117页,章节:4.8.5 自动存储、静态存储和动态存储。
继续补充:侯捷老师的《英中繁簡編程術語對照》中lifetime词条: (原地址不可考,这里是转载 https://github.com/xiaq/boost-doc-zh/blob/master/glossary/term_jjhou.txt)
英文 繁体译词
(有些是侯捷个人喜好,普及与否难说) 大陆惯用术语
---------------------------------------------------------------------------------------
lifetime 生命期、寿命 生命期、寿命
「生命周期」已经成惯用语了
个人支持「生存期」用于和「生命周期(life cycle)」区分
个人建议使用[有效期]比较贴近lifetime在Rust的语义。
翻译成生涯更好。庄子曰吾生也有涯,lifetime最重要的就是给你活着的时间划了一个边界
翻译成生涯更好。庄子曰吾生也有涯,lifetime最重要的就是给你活着的时间划了一个边界
我喜欢这个名称
“lifetime”这个词的中文翻译有一定争议,在此列举出一些常见翻译并试图分析它们的利弊。
欢迎补充