【问题标题】:What's a good naming convention for a lookup map/hash? [closed]查找映射/哈希的良好命名约定是什么? [关闭]
【发布时间】:2008-10-20 05:50:52
【问题描述】:

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

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

保存此映射的变量的好名称是什么?一些想法(我将使用驼峰命名):

countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName

【问题讨论】:

    标签: language-agnostic naming-conventions


    【解决方案1】:

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

    String country = codeToName["SV"];
    

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

    【讨论】:

      【解决方案2】:
      country_name = countries_by_code[country_code]
      

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

      【讨论】:

        【解决方案3】:

        我喜欢在集合中使用复数。

        countryNames
        

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

        【讨论】:

          【解决方案4】:

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

          countryName = countries[countryCode];
          

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

          countryName = countryCodesToNames[countryCode];
          

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

              我会选择

              countryName = countryByCode["DE"]
              

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

              countryName = countryNameByCode["DE"]
              

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

              地图首先不是一个集合,而是一张地图。因此,我不会选择像countriescountriesByCode 这样的名称。根据上下文,有时强调地图的论点可能是合理的(请参阅unwind's answer)。但就个人而言,我认为在你的情况下,

              countryName = CountryCodeToName["DE"]
              

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

              【讨论】:

                【解决方案7】:

                我通常这样做:

                countryCodeMappingByName

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

                国家代码映射

                【讨论】:

                • 真的吗?我无法想象每次使用该哈希图时都必须输入它。
                • 我知道变量名有点长,但它并不模棱两可,我认为这很重要......
                【解决方案8】:

                再次投票支持将您映射到的内容复数化。

                例如。 country = countries[code]

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2022-01-09
                  • 2011-01-25
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多