7

在数据处理中,我经常需要创建一个查找数据结构来将一个标识符映射到另一个标识符。作为一个具体的例子,让我们看一个结构,它包含一个国家的 2 个字符代码和它的全名之间的 1 对 1 映射。在里面我们会有

AD -> Andorra   
AE -> United Arab Emirates  
AF -> Afghanistan

保存这张地图的变量的好名字是什么?一些想法(我将使用驼峰命名):

countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName
4

8 回答 8

8

codeToName在这种特殊情况下,我的投票是赞成的,我想这可以概括。这并不是说这是我在所有情况下都会选择自己的名字。这在很大程度上取决于范围、进一步的封装等等。但这感觉是个好名字,应该有助于使您的代码可读:

String country = codeToName["SV"];

看起来相当不错,应该很容易被任何人理解。可能将“代码”一词更改为更精确的词(“国家代码”将是我的下一个选择)。

于 2008-10-20T06:01:39.077 回答
5
country_name = countries_by_code[country_code]

它通过了“电话听写”测试,听起来也更像自然语言。

于 2008-10-20T06:55:47.093 回答
3

我喜欢用复数来表示集合。

countryNames

编辑:countryCodes是错误的,因为您正在从代码映射到名称。

于 2008-10-20T06:12:39.380 回答
0

我通常这样做:

countryCodeMappingByName

或者,如果映射是唯一的,只需简单地:

国家代码映射

于 2008-10-20T05:59:32.730 回答
0

发音时使用听起来正确的东西。这也意味着适当地命名您的关键变量。例子:

countryName = countries[countryCode];

这很有意义——你给countries一个countryCode,它返回一个countryName。这将是多余的:

countryName = countryCodesToNames[countryCode];
于 2008-10-20T06:17:08.420 回答
0

在 C# 中,我会调用执行此操作的类型CountryCodeToNameMapping。通常我会调用一个变量countryCodeToNameMapping,但在某些非常受限的上下文中(例如,lambdas),我可能会调用它cm

于 2008-10-20T06:38:36.257 回答
0

我会选

countryName = countryByCode["DE"]

除非你的代码中有一个Country类,在这种情况下我会选择

countryName = countryNameByCode["DE"]

它清晰、简洁、易于阅读。

地图首先不是集合,而是地图。因此,我不会选择类似countriesor的名称countriesByCode。根据上下文,有时强调地图的论点可能是合理的(参见unwind 的答案)。但就个人而言,我认为在你的情况下,

countryName = CountryCodeToName["DE"]

或类似的东西并不反映您的意图(获得国家名称)以及上面给出的名称。

于 2020-10-14T09:13:53.857 回答
-1

另一个投票只是将您映射到的内容多元化。

例如。country = countries[code]

于 2008-10-25T07:41:56.847 回答