【发布时间】:2018-05-09 22:58:06
【问题描述】:
上下文
在阅读 Consistent comparison 时,我注意到动词 to compare 的特殊用法:
有一个新的三向比较运算符 <=>。表达式a <=> b 返回一个对象,如果a < b 比较<0,如果a > b 比较>0,并且 如果a 和b 相等/等价,则比较==0。
在互联网上找到的另一个例子(重点是我的):
它返回一个在失败时比较小于零的值。否则, 返回的值可以用作以后调用的第一个参数 得到。
最后一个example,在 GitHub 上找到(重点是我的):
// 执行循环 16 位比较。
// 如果两个数之间的距离大于32767,
// 并且数字大于 32768,减去 65536
// 因此,65535 比较小于 0,但大于 65534
// 这会正确处理 65535->0 环绕大小写
当然,对于有经验的程序员来说,意思是很清楚的。但是在这些例子中使用动词to compare的方式在任何标准化的英语形式中都不是标准的。
问题*
- 编程jargon 句子“对象比较小于零”如何翻译成简单的英语?
- 这是否意味着如果将对象与
0进行比较,结果将“小于零”? - 为什么说“对象是小于零”而不是“对象比较小于零”是错误的?
* 我在English Language Learners 和English Language & Usage 寻求帮助。
【问题讨论】:
-
@NicolBolas “比较小于零”绝对不是“简单的英语”。这种 compare 的含义通常需要语义上的多价结构(通过复数主语、复数 DO 或单数 DO 后跟强制 PC 来表示)。它可能在(一些?)程序员中以这种单价的方式行话,但这并不意味着它是简单的英语。 “X 比较小于零”对于大多数说英语的普通人来说没有任何意义,就像“我的新车比较 55”一样。
-
@NicolBolas 不,不是。那是完全正常的多价用法(尽管在我的第一条评论中忽略指定的结构中,这是理所当然的:具有强制性 PC 的单一主题)。有两种语义动词补语,其中一种表示为 PP。这里引用的情况首先不是“没有对象”的用法:有一个对象,即小于。有一个单一的主题和一个单一的 DO——仅此而已。这不是 compare 的正常结构。您的示例的平行版本是“他的独奏会肯定与他去年的独奏会相比”。
-
@Nicol 仍然没有。首先,这将是一个非常不寻常的小于用法。更重要的是,您通常比较 X to/with Y,无论是否有任何状语(如 否定 或者,如果我们接受它, 小于)。在独奏示例中,您恢复了 C++ 示例中没有的 with ——这就是它如此奇怪的原因。 “他的独奏会与他去年的独奏会相比”仍然没有意义。并且“如果 a
-
@JanusBahsJacquet: "更重要的是,你通常比较 X 和 Y,不管是否有任何状语(比如否定或,如果我们接受它,小于)。” 我会说“小于”作为副词和“to/with” 起作用。 “小于”这个短语已经预设了一个后续对象的存在;无需添加“to/with”。虽然您可能“通常”需要“to/with”,但在这种情况下您不需要。
-
@Nicol 这正是使它成为行话的原因:不能从标准英语中的 less than 之类的短语中推断出这样的预设。用法很可能是 C++ 行话,但它是行话,而不是标准/简单的英语。如果我正确理解您的答案,更标准的英语改写将类似于“一个对象,如果与 0 相比,如果 a
标签: c++ terminology comparison-operators c++20 spaceship-operator