//Без комментариев – Python 3.6, Racket v6.7 и TypeScript 2.1


• Что Нового В Python 3.6 

• Ракетка v6.7

• Объявление машинописного текста 2.1

Иногда новости достаточно хорошо освещаются в других местах, и нам мало что остается добавить, кроме как довести их до вашего сведения.

Без комментариев-это формат, в котором мы представляем исходную исходную информацию, слегка отредактированную, чтобы вы могли решить, хотите ли вы следить за ней. 

Что Нового В Python 3.6

Форматированные строковые литералы имеют префикс ” f ” и аналогичны строкам формата, принятым в str.format(). Они содержат поля замены, окруженные фигурными скобками. Поля замены-это выражения, которые вычисляются во время выполнения, а затем форматируются с использованием протокола format() :

f”Он сказал, что его зовут {имя}.”

– Он сказал, что его зовут Фред.

PEP 526 добавляет синтаксис в Python для аннотирования типов переменных, включая переменные класса и переменные экземпляра. Как и для аннотаций функций, интерпретатор Python не придает никакого особого значения аннотациям переменных и сохраняет их только в атрибуте__annotations__ класса или модуля.

класс Звездолет:

статистика: Dict[str, int] = {}

Подчеркивания в числовых литералах для улучшения читаемости. Например:>>>>>> > 1_000_000_000_000_000

Заметным ограничением реализации Python 3.5 является то, что невозможно было использовать await и yield в одном и том же теле функции. В Python 3.6 это ограничение было снято, что позволило определить асинхронные генераторы.

поддержка использования асинхронных выражений in list, set, dict и generator. Кроме того, выражения ожидания поддерживаются во всех видах понимания:

результат = [i асинхронно для i в aiter (), если i % 2]

результат = [await fun() для удовольствия в функциях, если условие ожидания()]

И, конечно, много небольших улучшений.

Ракетка v6.7

Racket описывается как “язык программирования полного спектра”, который выходит за рамки Lisp и Scheme с диалектами, поддерживающими объекты, типы и лень.

При кодировании в нем вы можете связать компоненты, написанные на разных диалектах, и написать свой собственный диалект для конкретного проекта, если хотите. Библиотеки Racket поддерживают приложения от веб-серверов и баз данных до графических интерфейсов, диаграмм и теперь Android:

Racket поддерживает создание графических приложений на Android через проект racket-android: https://github.com/jeapostrophe/racket-android

Racket REPL поставляется с редактированием строк, историей команд и результатов, а также различными мета-командами из коробки через модуль racket/interactive. 

Система пакетов поддерживает аутентификацию при установке пакетов из git, используя параметр конфигурации raco pkg config git-checkout-credentials.

Библиотеки HTTP, а также raco pkg поддерживают проксирование через HTTP CONNECT.

Типизированная ракетка предоставляет типизированные версии racket/os и racket/db/sqlite

Объявление машинописного текста 2.1

Недавно мы рассмотрели доступность RC, так что добавить особо нечего, кроме того, что 2.1 официально доступен. Если вы являетесь пользователем TypeScript, Visual Studio должна предложить вам выполнить обновление. 

Наиболее важной особенностью являются асинхронные функции, которые ставят TypeScript немного впереди JavaScript, который только начинает их приобретать.  

Некоторые новые функции, которые мы не рассматривали в предыдущих версиях:

“Мы были рады представить object rest & spread с момента его первоначального предложения, и сегодня он находится здесь, в TypeScript 2.1. Object rest & spread-это новое предложение для ES2017, которое значительно упрощает частичное копирование, объединение и разделение объектов. Эта функция уже довольно часто используется при использовании библиотек, таких как Redux.”

оператор keyof возвращает ключи, используемые в объекте в качестве типа

человек интерфейса {

имя: строка;

возраст: число;

расположение: строка;

}

пусть a: Человек[“возраст”];

Окончательно 

Сопоставленные типы позволяют изменять типы переменных свойств, используя что-то вроде шаблона:

введите Booleanify = { [P в ключе T]: boolean

};

тип BooleanifiedPerson = Booleanify;

Чтобы получать информацию о новых статьях на I Programmer, подпишитесь на нашу еженедельную рассылку,подпишитесь на RSS-канал и следуйте за нами в Twitter, Facebook, Google+ или Linkedin.

Комментарии

Сделайте комментарий или Просмотрите существующие комментарии С помощью Disqus


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