У меня проблема с пониманием того, как применить синтаксис camelCase к некоторым именам моих переменных.
Например, как правильно написать слово типа «номер телефона» в случае верблюда? Это phoneNumber
или phonenumber
? Аналогично с именем пользователя, это username
или userName
?
Я думаю , что это выглядит не так с верблюда случае , как motorCycle
, passWord
, sunDay
, setUp
или , waveLength
поскольку это только одно слово каждый. Я думаю, что это может быть причиной того, что он называется, hashMap
но также и hashtable
в случае верблюда без заглавной буквы в последнем случае, потому что хеш-таблица - это одно слово, а хэш-карта - два слова.
Но если у мотоцикла есть цвет, то будет ли это motorcycleColor
так, как слово соединено? Это правильно или же она должна быть phoneNUmber
, waveLength
, sunBlock
и даже sunDay
в воскресенье недели?
Почему, например, метод вызывается, getISOCountries
когда он говорит, HttpHeaders
например, неясно, что становится строчными, если у нас есть метод, подобный String camelCaseString = dog.toCamelCase()
или interface CamelCase
.
username
это то, что это, это позывной, а не «имя пользователя», так что это больше похоже на мотоцикл, чем firstName или lastName (которые должны быть на верблюде)street
должен быть класс иname
один из его атрибутов / членов данных.Ответы:
Вы должны использовать заглавную букву после того, где «обычно» будет пробел (когда вы будете писать письмо вместо исходного кода). Ваше первое предположение верно:
motorcycle
, а неmotorCycle
.hashMap
, а неhashmap
.sunday
нетsunDay
.dayOfWeek
, нетdayofweek
.источник
hashmap
в качестве одного слова, хотя по иронии судьбы мы не дляtree map
.honeyBee
(и неhoneybee
на самом деле не «пчела», а «пчела»), аbutterfly
.setUp
Случай без адреса - это крайний случай, хотя это одно слово, ноJUnit
исторически он назывался инициализацией прибораsetUp
.JUnit
правильно, остальные из нас - крайний случай. :)tearDown
: DЧасть 1
Я думаю, что вас сбивает с толку то, что некоторые из ваших примеров являются сложными словами , а другие нет.
Составные слова не следуют за обозначением верблюжьего слова для второго слова в составном слове.
Так оно
motorcycle
и естьmotorCycle
.Но «номер телефона» не является составным словом, и оно будет следовать за обозначением верблюжьего случая то есть
phoneNumber
.И это приводит к:
motorcycleColor
.Если я не могу вспомнить, является ли слово действительно составным словом или нет, я проверю его в словаре, чтобы быть уверенным.
Часть 2
Два ваших примера немного сложнее.
Они хитры, потому что некоторые пишут их как «hashmap» и «hashtable». В соответствии со словарем, который я только что проверил, это отдельные слова, а не составное слово. Так что верный верблюжий случай был бы
hashMap
иhashTable
. Не каждая команда следует этому соглашению, поэтому вам нужно спросить своих товарищей по команде, что они предпочитают, а затем придерживаться этого. В этом случае последовательность важнее, чем то, что словарь может сказать правильно.* Некоторые будут спорить о том, что воскресенье является составным словом, поскольку другие дни недели не являются таковыми, но для целей этого вопроса я буду обходить эту проблему. Проще всего рассматривать это как составное слово и, следовательно, без верблюдов.
источник
if (currentDay == thorsDay) {...
Хмм ... слишком плохие библиотеки даты не имеют , что в качестве опции форматирования , если вы хотите , чтобы получить полное название дня недели.HashMap hashMap = new HashMap();
Как уже отмечали другие, случай верблюда используется при соединении слов. Не используйте случай верблюда в пределах одного английского слова. Проблема заключается в определении того, какие соединения являются отдельными словами. Предоставленные самим программистам будут принимать разные решения в зависимости от их знания английского языка. Это приводит к несоответствиям в капитализации, которые почти так же раздражают, как и орфографические ошибки.
Чтобы предотвратить это, программисты должны использовать стандартную ссылку (например, dictionary.com ), когда они не уверены в правописании или использовании заглавных букв. Тем не менее, если согласованность именования важна для вашего проекта, ничто не заменит обзор кода.
Выбор одной ссылки для вашего проекта разрешит большинство споров по поводу заглавных букв и орфографии. Есть некоторые соединения, такие как Hashtable, которые отсутствуют в словарях, но пишутся заглавными буквами в API Java и C #. Вы хотите принять решение по всему проекту о тех. В Java это «HashMap», но «Hashtable». ИМО "Hashtable" явно неверен; оно никогда не появляется как отдельное слово, кроме как как имя в API.
источник
Самый простой способ сделать верблюжий случай - это разграничение слов.
Примеры из вашего вопроса:
Если вы не разделите его на два слова, вам также не следует использовать на нем чехол для верблюда. В противном случае вы используете его на слоги и как глупо это выглядит
источник
setup
, в то время как если бы у вас была функция для настройки чего-либо, он был бы вызванsetUp
.wavelength
либо вwaveLength
зависимости от того, относится ли рассматриваемое значение к скорости распространения, деленной на частоту, либо к «длине» (не обязательно расстоянию) какой-либо волны. , Например, переменная библиотеки синтеза звука для числа семплов, связанных с волной, не будет,wavelength
ноwaveLength
.WaveLength
само по себе было бы немного расплывчато в любом, кроме самых упрощенных сценариев [касается ли это размера буфера или длины секции цикла), но слова вполне могли бы появиться в более длинном имени.Это - то, где усложнение с простым английским языком мешает тому, как позже человек злоупотребляет английским языком, чтобы соответствовать правилам пробелов в токенах в контексте программирования.
Из приведенных вами примеров слова почти все являются составными. Воскресенье - это не то, что, хотя оно возникло как комплекс, так давно оно было так давно, что его вряд ли можно считать одним, особенно потому, что его посвящение солнцу - скорее историческое любопытство, чем сильная часть религиозного и культурного мировоззрение англоязычных людей.
А в английском языке три основных способа написания составного слова - открытый (с пробелом между двумя словами), дефис и закрытый (без пробела или дефиса между ними). И хотя в некоторых ситуациях существуют некоторые правила, касающиеся переноса открытых соединений, на самом деле не так уж много жестких правил для того, чтобы знать, какая форма используется для данного соединения, кроме того, что видят другие люди, и бывают случаи, когда вы найдет два или даже все три форм ( Eggbeater , Eggbeater и яйцо ударное , например).
Здесь номер телефона почти всегда пишется открытым, поэтому его следует рассматривать как два слова.
А при взаимном перекрытии для формирования токена пробел или дефис удаляются, а второе и последующее слово пишутся в заглавном регистре, следовательно,
phoneNumber
илиPhoneNumber
в соответствии с вашим соглашением.То, что
phoneNumber
кажется странным, - это то, что это чаще всего дается, какphone
в большинстве контекстов, илиnumber
когда контекст касается телефонной связи.источник
Обеспечить согласованность в файле кода.
Содействие согласованности в коде проекта.
Предпочитают согласованность в библиотеке кода.
Состав слов для представления понятий меняется по мере того, как мы становимся более знакомыми с данной агглютинацией .
Например...
Обратите внимание, что программа проверки орфографии StackExchange не может принять решение. «Телефонный номер» в конце вышеприведенного предложения был в порядке, но он помечает номер в начале предложения (с большой буквы или нет).
Столько, сколько большинство желает, чтобы был «один правильный путь» делать что-либо, когда дело доходит до языка, этого никогда не может быть. К тому времени, когда вы закончите свой проект, использование, вероятно, изменится. Конечно, ваше понимание изменится и функциональность метода / et.al. вероятно, тоже изменился. (В этом случае вам, вероятно, следует изменить имя соответствующим образом.)
источник
С чисто технической (американской) точки зрения, где xxx-yyy-zzzz - это то, что вы обычно называете «номером телефона», часть xxx должным образом называется кодом города, часть yyy правильно называется обмен, и zzzz правильно называется числом.
Поскольку «номер телефона» не только не является составным словом (пока), но если оно становится одним, оно будет неправильно ссылаться на что-то вне намерения своего создателя, я бы сказал, что для синтаксиса camelCase потребуется phoneNumber для любой переменной, которая на него ссылается, но если вы собираетесь делать что-либо с реальной телефонной системой, я бы использовал phoneExchangeNumber для семизначного числа и phoneACExchangeNumber для десятизначного числа.
источник