- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
func (svc *UserSvc) isEmptyName(name model.User_Name) bool {
if name.First.RU == "" {
if name.First.EN == "" {
if name.First.TR == "" {
if name.First.IT == "" {
if name.Last.RU == "" {
if name.Last.EN == "" {
if name.Last.TR == "" {
if name.Last.IT == "" {
return true
}
}
}
}
}
}
}
}
return false
}
Автор нескалярные структуры данных еще не проходил?
Да и кто на JS пишет названия методов в стиле snake_case?
- enum languages {RU, EN, IT};
- #define LAST_LANG IT
+enum languages {RU, EN, IT, LAST_LANG};
И там и там LAST_LANG == 3. Но обычно все пишут по гостовски.
> #define LAST_LANG IT + 1
#define LAST_LANG ((IT) + 1)
Когда уже заповеди макроёбства выучишь?
Но в общем случае ты не знаешь, в каком контексте будет юзаться этот LAST_LANG. Может быть я захочу массив завести для переводчика и напишу LAST_LANG * LAST_LANG?
Поэтому expression-like макросы всегда, сука, ВСЕГДА, надо писать со скобками как вокруг каждого аргумента, так и вокруг всего выражения.
Это наименьшее зло. Все так пишут, т.к. остальные варианты ещё хуже. В твоём варианте, к примеру, надо не забывать обновлять LAST_LANG когда новый язык добавляется.
> шуточный
С макросами не шутят. Риск залёта очень высокий. Уже на банальном LAST_LANG * LAST_LANG всё ломается.
1) Не пиши макросы
2) Если ты всё-таки решил запилить макрос, называй его капсом
3) Если ты используешь аргумент макроса, заключи его в скобки
4) Если ты пишешь expression-like макрос, оберни его в скобки
5) Если ты пишешь statement-like макрос, оберни его в do { ... } while (0)
#undef FALSE
#undef int
#undef main
#undef void
#undef return
...
Так что ещё одно правило: надо точно помнить, во что раскрывается макрос, и стараться не передавать туда выражения с побочкой (еще как пример можно вспомнить макрос MAX). раскрылось в какое-то говно по аналологии с i = i++ + i++, но чуть посложнее и с массивами.
Или brainfuck на худой конец....
по рубёвому надо `empty?`. сам долгое время ловил ворнинги от рубимайна.