Рекомендации при написании кода
Общие рекомендации
-
Используйте краткую форму записи лямбда-выражения, если его тело однострочное.
знч Результат = (Текст: Строка) -> Текст.Длина()знч Результат = метод(Текст: Строка) ->возврат Текст.Длина(); -
Используйте ссылку на метод вместо лямбда-выражения, если его тело не умещается в 5 строк.
знч День = &ОписаниеДняметод ОписаниеДня(ТекущийДеньНедели: ДеньНедели): Строкапер СообщениеДня: Строкавыбор ТекущийДеньНеделикогда Суббота, ВоскресеньеСообщениеДня = "Сегодня выходной"когда ПятницаСообщениеДня = "Завтра выходной"иначеСообщениеДня = "Сегодня будний день";возврат СообщениеДня;метод ПолучитьОписаниеДня(): (ДеньНедели)->Строкавозврат &ОписаниеДня;знч День = метод(ТекущийДеньНедели: ДеньНедели) ->пер СообщениеДня: Строкавыбор ТекущийДеньНеделикогда Суббота, ВоскресеньеСообщениеДня = "Сегодня выходной"когда ПятницаСообщениеДня = "Завтра выходной"иначеСообщениеДня = "Сегодня будний день";возврат СообщениеДня; -
Не указывайте типы параметров лямбда-выражения, если они могут быть выведены компилятором из контекста:
-
из типа параметров системных методов;
Массив.СортироватьПо(Студент -> Студент.Оценка)// Тип параметра известен из описания системного методаМассив.СортироватьПо((Студент: Студент) -> Студент.Оценка) -
из типа параметров собственных методов;
пер Рез = СравнитьСтроки(ПерваяСтрока,ВтораяСтрока,(Строка1, Строка2) ->Строка1.Длина() < Строка2.Длина())метод СравнитьСтроки(Первая: Строка,Вторая: Строка,Сравнить: (Строка, Строка)->Булево): Булевовозврат Сравнить(Первая, Вторая);пер Рез = СравнитьСтроки(ПерваяСтрока,ВтораяСтрока,// Типы параметров известны// из объявления метода СравнитьСтроки()(Строка1: Строка, Строка2: Строка) ->Строка1.Длина() < Строка2.Длина())метод СравнитьСтроки(Первая: Строка,Вторая: Строка,Сравнить: (Строка, Строка) -> Булево): Булевовозврат Сравнить(Первая, Вторая); -
из типа переменной.
пер МетодДлина: ((Строка)->Число)?// ...МетодДлина = (Текст) -> Текст.Длина()пер МетодДлина: ((Строка)->Число)?// ...// Тип параметра известен из типа переменной МетодДлинаМетодДлина = (Текст: Строка) -> Текст.Длина()
-
-
В имени функционального типа:
-
не обрамляйте пробелами лямбда-операцию
->;(Число)->Число(Число) -> Число -
ставьте пробелы после запятых в списке типов параметров.
(Число, Число)->Число(Число,Число)->Число
-
-
В лямбда-выражении обрамляйте пробелами лямбда-операцию
->.x -> x + 1x->x + 1