ФлеймФорумОбщее

не могу переваривать { в новой строке (2 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#15
12:02, 29 янв 2020

Угу, и двоеточия в питоне тоже нафиг не сдались в большинстве случаев.

#16
12:07, 29 янв 2020

@!!ex
Проще не парсеру а человековосприятию.
Обычно всякие операторы, вроде if, while, for уже можно считать открывающими инструкицями,
с объявлениями переменных, стейтментами несколько сложнее.
Вот если бы вместо } был end, небыло бы таких проблем:

// Possible C++
int main()
  int var = GetVar();
  if (var == 10)
    puts("Bad value\n");
  else
    puts("Good value\n");
  end
  return 0;
end
#17
12:16, 29 янв 2020

nes
> // Possible C++
> int main()
> int var = GetVar();
> if (var == 10)
> puts("Bad value\n");
> else
> puts("Good value\n");
> end
> return 0;
> end
Ты только что изобрел питон, поздравляю. Еще бы end в конце блока убрать.

#18
12:17, 29 янв 2020

totoro
> Ты только что изобрел питон, поздравляю.
Бейсик он изобрел, а не питон.

#19
12:19, 29 янв 2020

Тогда уж вот так.

// Possible C++
int main()
  int var = GetVar()
  if var ~= 10 then
    print("Good value")
  else
    print("Bad value")
  end
  return 0
end
#20
12:25, 29 янв 2020

nes
> Проще не парсеру а человековосприятию.
> Обычно всякие операторы, вроде if, while, for уже можно считать открывающими
> инструкицями,
> с объявлениями переменных, стейтментами несколько сложнее.
> Вот если бы вместо } был end, небыло бы таких проблем:

Не каждому. End действует угнетающе. Одни потери, нет пути, выхода. Окончание всего.
Количество суицидов увеличится.

#21
12:27, 29 янв 2020

Просто напомню, как бы сейчас писали, если бы СССР победил в холодной войне.

цел основа()
  цел пер = ПолучитьПер()
  если пер ~= 10 тогда
    печатать("Хорошее значение")
  иначе
    печатать("Плохое значение")
  конец
  возврат 0
конец

А что, мне нравится.

#22
12:28, 29 янв 2020

dave

int main()
  return 0;
happy_end
#23
12:32, 29 янв 2020

Azure Drake
> Просто напомню, как бы сейчас писали, если бы СССР победил в холодной войне.

Всмысле "писали бы"?

Пишут.

  Запрос = Новый Запрос;
  Запрос.Текст = 
    "ВЫБРАТЬ
    |  ТратыОбороты.Период КАК Период,
    |  СУММА(ТратыОбороты.СуммаОборот) КАК СуммаОборот
    |ИЗ
    |  РегистрНакопления.Траты.Обороты(&НачДата, &КонДата, День, Категория.ВходитВПланРасходов) КАК ТратыОбороты
    |
    |СГРУППИРОВАТЬ ПО
    |  ТратыОбороты.Период
    |
    |УПОРЯДОЧИТЬ ПО
    |  Период";
  
  Запрос.УстановитьПараметр("НачДата", НачДата);
  Запрос.УстановитьПараметр("КонДата", КонДатаЗапроса);
  
  РезультатЗапроса = Запрос.Выполнить();
  
  Выборка = РезультатЗапроса.Выбрать();
  
  // Создадим таблицу дней
  ТипДаты = Новый ОписаниеТипов( "Дата", , , Новый КвалификаторыДаты( ЧастиДаты.Дата ) );
  ТипЧисла = Новый ОписаниеТипов( "Число", Новый КвалификаторыЧисла( 12, 2 ) );
  ТЗ = Новый ТаблицаЗначений;
  ТЗ.Колонки.Добавить( "Дата", ТипДаты );
  ТЗ.Колонки.Добавить( "Сумма", ТипЧисла );
  ТекДень = НачДата;
  Для День = 1 По ЧислоДнейЗапроса Цикл
    Строка = ТЗ.Добавить();
    Строка.Дата = ТекДень;
    Строка.Сумма = 0;
    ТекДень = ТекДень + 24 * 60 * 60;
  КонецЦикла;
  Пока Выборка.Следующий() Цикл
    ТекДень = НачалоДня( Выборка.Период );
    Строка = ТЗ.Найти( ТекДень, "Дата" );
    Если Строка = Неопределено Тогда
      ВызватьИсключение "Аномалия! Дата " + ТекДень + " не найдена в таблице, обратитесь к программисту.";
    КонецЕсли;
    Строка.Сумма = Выборка.СуммаОборот;
    //Сообщить( "Период: " + Выборка.Период + " Сумма: " + Выборка.СуммаОборот );
  КонецЦикла;

И да, если хотел схохмить что это как то неестественно - то нет, это только лишь дело привычки.
Когда так реально пишешь каждый день, то воспринимается ровно как оно и есть: просто программа на просто родном языке.
Никаких больше деформаций восприятия не возникает. Естественный и понятный код и всё.

#24
12:34, 29 янв 2020

nes
> if (var == 10)
Лучше без скобочек, но с then

#25
12:35, 29 янв 2020

> КонецЕсли;
> КонецЦикла;
Это выглядит фигово безотносительно языка.

#26
12:36, 29 янв 2020

1 frag / 2 deaths
Но это уже был бы совсем не Цэ++.
А так-то я много бы чего в нем изменил,
на свой вкус и цвет, даже тема у меня есть отдельная )

#27
12:37, 29 янв 2020

=A=L=X=
> Строка.Сумма = 0;
> Если Строка = Неопределено Тогда
Не заморачивались с := или ==

#28
12:37, 29 янв 2020

Azure Drake
> Это выглядит фигово безотносительно языка.

По моему в 1С наоборот так сделали (в полной аналогии с бейсиком) для еще более нарочитой самодокументации. Опять таки, когда привыкаешь - совершенно не парит.

> Не заморачивались с := или ==

Тут всё очень похоже на бейсик, никаких присваиваний в условиях.

#29
12:38, 29 янв 2020
function main(args)
  if(args == nil) then
    print('empty')
  elseif(args[1] == 'some_param')then
    print('some param: '..args[2])
  else
    print('unknown params')
  end
  return 0, 'zero', {'yeap, another result', 0}
end

result = {main({'some_param', 42})}
print(result[3][1])
Страницы: 1 2 3 4 5 6 7 Следующая »
ФлеймФорумОбщее

Тема в архиве.