Онлайн заработок, создание и монетизация сайтов, веб-разработка, SEO и SMO продвижение, фриланс, партнерки, полезные сервисы вебмастерам, блоггинг.

Новые лямбда-операторы для больше гибкости в разработке шаблонов

Недавно в была заметка с описанием новых операторов и выражений Blogger, позволяющих использовать в шаблоне математические/логические выражения и некоторые другие конструкции. Это позволяло более гибко настраивать внешний вид и логику работы вашей темы. Данное нововведение было тепло принято продвинутыми разработчиками, поэтому создатели платформы решили внедрить еще одну вещь.

Новая фишка получила название лямбда-выражения. С ее помощью сможете применять те или иные правила ко всем наборам данных: комментариям, меткам, постах блога и т.п., а не только определенным конкретным объектам.
Проще понять это будет на примере. Допустим, вам понадобилось добавить изображение/превью цветка для всех записей, где встречается соответствующая метка (Flower). Применяя лямбда-выражения сначала определяете имя переменной, которая будет соответствовать каждому элементу в наборе, а затем выполняете с ней какое-то действие словно делаете его с каждым из элементов.
Звучит не особо понятно. По логике мне отдаленно напоминает переобход массива через foreach в PHP. Вот как выглядит соответствующий код для лямдба-выражения «any» в Blogger:

<!-- Show a Flower image if the post has the label flower -->
 <b:if cond='data:post.labels any (l => l.name == "Flower")'>
  <img src=’/img/flower.jpg’ />
<b:if/>
Здесь видим, что в переменная l соответствует меткам (data:post.labels), и для их имени l.name проводится сравнение с фразой «Flower». На сайте отобразится что-то вроде:
лямбда-операторы
С помощью этой фишки вы можете делать абсолютно разные вещи: отображать количество постов с определенными числом комментариев (нулевых или нет, например); выводить в RSS фид только посты с определенной меткой, фильтруя нежелательный контент.

Синтаксис и лямбда операторы

[set of items] [lambda operator] ([lambda expression])
Сначала определяете набор элементов, зачем сам лямбда-оператов, а дальше выражение/действие. На самом деле кроме any тут есть много других вариантов:
  • any — возвращает любой объект из списка, для которого справедливо выражение;
  • all — справедливо, если все элемент набора отвечают вашему правилу;
  • none — противоположная фишка предыдущей — true, когда ни один объект не соответствует заданной формуле;
  • count — возвращает общее число элементов, где заданное выражение = true;
  • filter — отдает набор объектов, у которых лямбда-вырежение правдиво;
  • map — если я правильно понял, содержит список всех результатов;
  • first — первый элемент, для которого формула = true.
После такой информации, думаю, вам стало чуть понятнее что да как. Как видите, инструмент с этими лямбдами получился весьма интересный. Это может однозначно добавить гибкости при разработке Blogger шаблонов и добавлении оригинальных функций в них.

06.05.19

Категории: Blogger.com (Blogspot).

Теги: , , , ,

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

Ваш e-mail не публикуется. Обязательные поля помечены *
Если вы комментируете впервые, то текст будет отправлен на модерацию.