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

суббота, 19 января 2019 г.
Недавно в была заметка с описанием новых операторов и выражений 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 шаблонов и добавлении оригинальных функций в них.
Понравился пост? Подпишись на обновления блога по BlogoHelp RSSRSS, BlogoHelp по EmailEmail или twitter!
Как вам пост?   
Related Posts with Thumbnails