Прежде всего, приведенный выше код не является допустимым кодом C ++. Синтаксис, который вы используете для явной специализации шаблонов, неверен (и в конце вы пропускаете точку с запятой). Кроме того: std::min<0U,N>
и std::max
являются функциями, а не вызовами функций. Вы, вероятно, хотели написать:
template struct valid {static const unsigned value = 0; };
template<> struct valid<0U> {static const unsigned value = 1; };
template<> struct valid<99U> {static const unsigned value = 1; };
template struct validate
{
static const unsigned value = valid< std::min(0U,N) >::value *
valid< std::max(N,99U) >::value;
};
Определенно, используйте "Нет". И для поочередно, используйте "Если (myboolean)" вместо "Если (myboolean = верный)"
Работы лучше всего, если Вы даете булевской переменной читаемое имя:
if (node.HasChildren)
С тех пор нет никакого функционального различия ни между одним стилем, это - одна из тех вещей, которая просто сводится к персональному предпочтению.
Если Вы работаете над кодовой базой, где норма была уже установлена, то придерживается этого.
Определенно используйте "Не", рассмотрите чтение его вслух.
Если Вы читаете вслух:
Если X ложь, Затем Делают Y Делают Y
По сравнению с
Если не X затем делают Y
Я думаю, что Вы найдете "Не", направляют, является более естественным. Особенно, если Вы выбираете хорошие имена переменной или функции.
Завершенный код имеет некоторые хорошие правила об именах переменной. http://cc2e.com/Page.aspx?hid=225 (вход в систему, вероятно, требуется),
Использовать True
и False
установить переменные, не протестировать их. Это улучшает удобочитаемость, как описано в других ответах, но она также улучшает мобильность, особенно когда лучшие методы не применены.
Некоторые языки позволяют Вам чередоваться bool
и целые типы. Рассмотрите изобретенный пример:
int differentInts(int i, int j) { return i-j; // Returns non-zero (true) if ints are different. } . . . if (differentInts(4, 8) == TRUE) printf("Four and Eight are different!\n"); else printf("Four and Eight are equal!\n");
Ужасный стиль, но я видел худшего подхалима в производство. На часах других людей, конечно.:-)
! состояние
В C и предварительном STL C++, "! условие" означает, что условие оценивает к ложному значению истинности, тогда как "условие == ЛОЖЬ" означала, что значение условия должно было равняться тому, что система разработала как ЛОЖЬ. Так как различные реализации определили его по-разному, это считали лучшей практикой для использования!состояние.
ОБНОВЛЕНИЕ: Как указано в комментарии - ЛОЖЬ всегда 0, это - TRUE, который может быть опасным.
Дополнительно к согласию, когда будет и истинным случаем и ложным случаем, используйте
if (condition)
// true case
else
// false case
вместо
if (not condition)
// false case
else
// true case
(Но затем я никогда не уверен если Python x is not None
истинный случай или ложный случай.)
Что-то еще: Опустите круглые скобки, они избыточны в VB и как таковы, составляют синтаксический мусор.
Кроме того, я немного побеспокоен тем, сколько людей спорит путем предоставления технических примеров на других языках, которые просто не применяются в VB. В VB, единственные причины использовать If Not x
вместо If x = False
удобочитаемость и логика. Не то, чтобы Вам были бы нужны другие причины.
Совершенно другие причины применяются в C (++), верный. Еще более верный из-за существования платформ, которые действительно обрабатывают это по-другому. Но вводя в заблуждение в контексте VB!