「缺省」这个词是如何从英语 "Default" 翻译过来的?

您所在的位置:网站首页 缺省状态下 「缺省」这个词是如何从英语 "Default" 翻译过来的?

「缺省」这个词是如何从英语 "Default" 翻译过来的?

2023-03-10 03:04| 来源: 网络整理| 查看: 265

要知道以前电脑是面向程序员的,最少也是面向操作员的,不是面向门外汉的。所以用词准确性非常重要,好不好听不重要,是否容易理解不重要。

用「默认」来翻译 default 很好理解,但是不准确。因为很多词都可以有类默认值的意思,比如 preset value 和 default value 等等。这些词汇对于外行来说,都是「默认值」,但是对于程序员来说,这两个词差异可大了。

preset value 是「预设值」,其中 preset 的词源是 pre- (在……之前) + set (设置) ,即预先设置。 default value 字面意思是「消除错误的值」,其中 default 的词源是 de- (消除) + fault (错误) 。

有什么区别呢?

如果预先设置一个值,就是 preset value (预设值),后面如果没人设置了,那么自然就「默认」以前预设的值了。这显然是「默认值」。

另一种情况是这样:你没有预先设置一个值,而是直接让用户去填空,填上一个值。如果这个用户操作出错,导致没有填上这个值,或者用户填的值是错误的(比如让你输入数字你却输入字母),那么我这个程序就要主动地去消除这个错误,也就是填上这个 default value (消除错误的值)。这显然也算是「默认值」,但是这是事后弥补,而非事前预设,所以 default value 是仅当「缺少」和「省略」的时候才使用的值,故名「缺省值」。其实曾经我还见过「补缺值」「除错值」等译名。

预设值(preset value):

#include #include #include #include using namespace std; int main() { long int number = 3; // 预设值 preset value bool isNumber = true; string input; cin >> input; for_each(input.begin(), input.end(), [&](char ch){ if (!isdigit(ch)) isNumber = false; }); if (isNumber) { number = strtol(input.c_str(), NULL, 10); } cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3