_Underscores на имена функций

Вы не можете анимировать вид, пока он не появится в интерфейсе и начальная компоновка не будет выполнена. Таким образом, вы звоните self.animateTitleLabel() слишком рано (в init).

Назовите это как-то как viewDidAppear. Конечно, тогда вы должны использовать свойство флага Bool, чтобы убедиться, что вы не вызываете его каждый раз viewDidAppear, только первый раз.

(Вместо этого может потребоваться вызвать его в viewDidLayoutSubviews; вам придется экспериментировать.)

22
задан Alan Storm 17 October 2010 в 23:10
поделиться

5 ответов

В мире C ++ имена членов, начинающиеся с подчеркивания, зарезервированы для использования разработчиками компилятора (или API низкого уровня, подобного STL). Это никак не запрещено компиляторами, но это традиция.

Эта ссылка на вики достаточно информативна в подчеркивании .

13
ответ дан 29 November 2019 в 05:38
поделиться

I cannot tell you the origin of this convention. My guess is, since the underscore is the only non-alphanumeric character allowed in identifiers in most programming languages, it is natural to chose it as a prefix for private members.

In Python, prefixing names with an underscore is more than just a convention: Symbols starting with an underscore are not imported by default when importing "everything" from a module, therefore the underscore indicates "private" / "internal usage".

6
ответ дан 29 November 2019 в 05:38
поделиться

Я впервые увидел это при кодировании C ++. Маркировка переменных-членов с префиксом "m_" обычно выполнялась.

Я предпочитаю не использовать ничего из этого, когда пишу Java. Я делаю переменные-члены понятными, используя «this».

0
ответ дан 29 November 2019 в 05:38
поделиться

Since your example appears to be using a C(++) syntax you may want to read up on inline functions which eliminate the overhead of calling a simple function. This keyword is only recommendation to the compiler though and it may not inline all functions that you mark, and may choose to inline unmarked functions.

In .NET the JIT will inline methods that it feels is appropiate, but you have no control over why or when it does this, though (as I understand it) debug builds will never inline since that would stop the source code matching the compiled application.

--121 --- 3212021--

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

Я настоятельно рекомендую в каждом вопросе такого рода посмотреть (купить, одолжить, (не) загрузить (бесплатно))) эту книгу : Роберт К. Мартин - Чистый код . Это книга, на которую должен взглянуть каждый разработчик.

Это не сделает вас хорошим программистом сразу и не помешает вам писать некрасивый код в будущем, но, тем не менее, заставит вас осознать это, когда вы пишете некрасивый код. Это заставит вас взглянуть на ваш код более критически и сделать ваш код читабельным, как газетная статья.

--121 --- 3212019--

Нет ничего плохого в однострочных функциях. Как уже упоминалось, компилятор может встроить функции, которые устранят любые потери производительности.

Функции также следует отдавать предпочтение макросам, поскольку они легче отлаживают, модифицируют, читают и с меньшей вероятностью могут иметь непреднамеренные побочные эффекты.

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

--121 --- 3212022--

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

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

Кроме того, если вам необходимо отобразить любой валюты в любой локали , Стандарт ISO4217 - ваш лучший выбор. Это то, что показано в пунктах обмена валют по всему миру, на обменах валют, счетах и ​​т. Д. В противном случае, Отображение символов валюты может быть довольно запутанным для некоторых пользователей, и этот символ сам по себе не указывает, какой валютой является сумма на самом деле.

Я бы также сослался на следующие вопросы SO. Не все из них имеют непосредственное отношение к вашей проблеме, но у них есть очень хорошие мета-дискуссии о проблемах, связанных с поддержкой нескольких валют.

- 121 --- 1690308--

подчеркивание (_) обозначает частную / защищенную функцию или переменную.

Не знаю, ВОЗ действительно придумала это, но я знаю, что он «поддерживается» Zend (и стандартами кодирования Zend).

edit: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

-> раздел B.3.4 ->

3
ответ дан 29 November 2019 в 05:38
поделиться

Я видел подчеркивание, используемое как частные функции, и я видел подчеркивание как глобальные функции. Также подчеркивание используется для обозначения глобальных переменных внутри самого PHP.

$_POST $_GET $_SESSION etc..

Это просто соглашение об именах, поэтому я спросил бы автора, есть ли он рядом.

0
ответ дан 29 November 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: