2008-10-20 4 views
6

При обработке данных мне часто необходимо создать структуру данных поиска для сопоставления одного идентификатора с другим. В качестве конкретного примера возьмем структуру, которая содержит сопоставление 1 к 1 между кодом страны 2 символа и его полным именем. В этом случае у нас было быЧто такое хорошее соглашение об именах для карты поиска/хэша?

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

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

countryNameByCode 
nameByCodeLookup 
nameCodeLookup 
codeToName 
+0

Благодарим за редактирование, Грег. Его это! Это ошибка, хотя это не так плохо, как мой любимый: «твоя ошибка». – Trenton 2008-10-21 04:57:57

ответ

5

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

String country = codeToName["SV"]; 

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

0

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

countryCodeMappingByName

Или, если отображение является уникальным, просто:

countryCodeMapping

RWendi

+0

действительно? Я не могу себе представить, чтобы это вводить каждый раз, когда я использую этот хэш. – Claudiu 2008-10-20 06:17:34

+0

Я знаю его немного длиннее для имени переменной, но его не двусмысленно, что, я думаю, важно ... – RWendi 2008-10-20 06:27:41

2

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

countryNames 

Edit: countryCodes это неправильно, потому что вы картирование из кода к имени.

0

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

countryName = countries[countryCode]; 

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

countryName = countryCodesToNames[countryCode]; 
0

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

3
country_name = countries_by_code[country_code] 

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

0

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

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