是否有常规同义词用于替换编程语言中保留的关键字?

问题描述 投票:0回答:2

我所指的单词的主要例子是“对象”、“值”等。在许多(好吧,不是真的,但至少在某些情况下有可能)情况下,您可能会碰巧发现自己愿意命名变量等.你的这样。

我在实践中偶然发现的另一个例子是“try”,它代表异常处理中使用的关键字(在许多类似 C 语言和其他语言中)和土耳其的货币。但这只是一个有趣的例子,我怀疑是否有任何针对这种特殊情况的常见做法(尽管我觉得前一种情况可能有)。

在这种情况下人们会做什么?在编程和数据建模上下文中,对象、值等合理的同义词有哪些?

例如,假设您正在开发一个对象数据库,出于某种原因,操作对象、属性和值(而不是文档、字段和...呃...值)是其哲学的关键思想之一,而您确实不知道不想使用与这些语义截然不同的单词。你会用什么词来代替保留词,同时保持与他们的意思非常接近?

到目前为止,我想到的最简单的解决方案是使用拼写错误(或以不同语言拼写)的相同单词的变体,例如“objekt”,“walue”等,但尽管这可以完成这项工作,但这只是让我感到恶心我真的不想接受这样的生活。

更新: 事实上,在某些特定情况(特定语言)中使用不同的大小写(有时,可能会违反社区和/或公司命名约定的大小写方面)和/或命名空间(几乎完全为此引入的)可能至少部分解决问题,但我仍然对替代方案感兴趣,因为我相信实际上复制系统关键字是人们至少应该考虑避免的事情(是否有一种方法可以做到这一点)在每种情况下都可以轻松地接受被认为过于严重的妥协。

我什至正在考虑编写一个脚本,通过 GitHub 来分析命名词汇的常见代码元素,但我认为先问而不是“重新发明一辆自行车”总是一个好主意,也许有人已经做了类似的事情。

更新2:请帮我一个忙,在投票结束之前以适当的客观程度考虑以下问题。恕我直言,我想强调的是,这个问题的实际主观程度很低(尽管如此,我承认,无论如何,有点高于零)。它唯一真正的缺陷是它可能更适合“英文网站”,但我相信 StackOverflow 的受众与上下文更相关(通常以更相关的方式了解)。发布这个问题的实际目的是强调一个很容易足够清楚地理解并且不能否认其存在的问题(尽管到目前为止其重要性可能值得怀疑),但提到的太少(因为代码清晰度的重要性)并且语义相关性正在增加,恕我直言,代码作为一种媒体正在迅速获得比书籍更大的文化(在这个词的广义含义上)重要性。并让人们分享他们所知道的实践中解决该问题的方法。

naming-conventions computer-science keyword linguistics
2个回答
2
投票
大写:

通常,使用不同的大写而不是同义词即可达到目的,因为大多数语言关键字都区分大小写。例如。 object = new Object();


前缀/后缀:

另一个经常遇到的解决方案是写myObject = new Object()。您选择哪一个实际上取决于您遵循的命名约定。对于私有类字段,一些开发人员使用下划线,例如

this._object
表示私有访问修饰符。

规范:

但在大多数情况下,您可以找到更具体的词来描述角色 - 例如 instance

parent
child
argument
- 或子类 - 例如
integer
 n
而不是对象的通用数字数据类型。

除了上述内容之外,许多语言社区还遵循事实上的约定,例如

cls

表示类、

obj
表示对象、
me
self
等。
    


0
投票
@

符号可用于任何标识符名称的前缀,从而避免与关键字冲突。

对于 C# 程序员而言,这并不是一个真正的解决方案,因为这相当于使用不同的名称;然而:

就与其他语言的互操作性而言,这是一个解决方案,因为 C# 代码中以“@”为前缀的标识符会暴露给其他没有“@”的语言(可供使用)。

这使得其他语言的程序员不必担心他们选择的标识符是否可能与他们不知道并且不关心知道的语法和保留字的语言(在本例中为 C#)的关键字冲突。

© www.soinside.com 2019 - 2024. All rights reserved.