Что такое хорошее соглашение об именах для карты поиска / хэша? - PullRequest
6 голосов
/ 20 октября 2008

При обработке данных мне часто приходится создавать поисковую структуру данных для сопоставления одного идентификатора другому. В качестве конкретного примера, давайте возьмем структуру, которая содержит отображение 1-к-1 между двухсимвольным кодом страны и ее полным именем. В нем у нас будет

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

Какое хорошее имя для переменной, которая будет содержать эту карту? Некоторые идеи (я буду использовать названия верблюжьих чемоданов):

countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName

Ответы [ 7 ]

5 голосов
/ 20 октября 2008

Мой голос будет за codeToName в данном конкретном случае, и я предполагаю, что это обобщает. Это не значит, что это имя, которое я бы выбрал сам во всех случаях; это во многом зависит от объема, дальнейшей инкапсуляции и так далее. Но это похоже на доброе имя, которое должно помочь сделать ваш код читабельным:

String country = codeToName["SV"];

Выглядит довольно красиво, должно быть легко понятно любому. Возможно, измените слово «код» на что-то более точное («код страны» будет моим следующим выбором).

3 голосов
/ 20 октября 2008
country_name = countries_by_code[country_code]

Проходит тест «телефонный диктант», а также звучит больше как естественный язык.

2 голосов
/ 20 октября 2008

Мне нравится использовать множественное число для коллекций.

countryNames

Редактировать: countryCodes неверно, потому что вы отображаете код из имени.

0 голосов
/ 25 октября 2008

Еще один голос за то, что вы просто ставите во множественное число то, на что вы отображаете.

например. country = countries[code]

0 голосов
/ 20 октября 2008

В C # я бы назвал тип, который делает это CountryCodeToNameMapping. Обычно я бы назвал переменную countryCodeToNameMapping, но в некоторых очень ограниченных контекстах ( например, , лямбда-выражения) я бы назвал ее c или m.

0 голосов
/ 20 октября 2008

Используйте что-то, что звучит правильно, произнося это. Это также означает, что ваши ключевые переменные называются соответствующим образом. Пример:

countryName = countries[countryCode];

Это имеет смысл - вы даете countries a countryCode, а оно возвращает countryName. Это было бы излишним:

countryName = countryCodesToNames[countryCode];
0 голосов
/ 20 октября 2008

Обычно я делаю это так:

countryCodeMappingByName

Или, если сопоставление уникально, просто:

countryCodeMapping

RWendi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...