Си диез / Говнокод #22042 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
if (name == "Паспорт гражданина Российской Федерации" || name == "Паспорт гражданина СССР")
{
	if (name == "Паспорт гражданина Российской Федерации")
	{
		return "Паспорт РФ";
	}
	else
	{
		return "Паспорт СССР";
	}
}
else
{
	return name;
}

Описание метода: "Сокращает имя документа".

Запостил: vladdy-moses vladdy-moses, (Updated )

Комментарии (16) RSS

    • В порядке аргументов оператора "=="
      Обязательно нужно указывать константу в левой части выражения:
      "Паспорт гражданина Российской Федерации" == name
      В случае опечатки "=" вместо "==", программа не скомпилируется, потому что нельзя присвоить литералу. Компилятор проверяет программиста.
      Ответить
    • Код не поддерживает ВНЖ, РВП и пасспорт моряка
      Ответить
    • Ну нет. Тут же можно было регулярку вкорячить, сокращало бы эффективнее.
      Ответить
        • Посчитать sha1 всех констант типа "Паспорт гражданина Российской Федерации" и сделать switch по sha1(name)?
          Ответить
          • Видел проект на плюсах, где люди, разбирая какой-то свой формат, кастовали четыре байта строки в инт и свитчились по нему.
            Ответить
            • Не вижу ничего криминального. Каст четырёх байтов в строку — скорее всего, вообще атомарная операция. А ко-ко-конпелятор автоматически оптимизирует свитч. В результате получится намного быстрее, чем тупо сравнивать все строки полностью.

              Правда, тут такой номер не пройдёт: тут же начала всех строк одинаковые.
              Ответить
  • Я все понял. Это критическая секция и неблокирующая синхронизация.
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8