gavr_sas – Telegram
gavr_sas
216 subscribers
2.68K photos
185 videos
28 files
788 links
JB пропаганда
Download Telegram
обожаю Ice-Pick Lodge
Podlodka #288 – Nim, часть 2 ​

Efficient as C, Expressive as Python, Elegant as Lisp. В этом выпуске вместе с Гавром продолжаем разбираемся с лучшим языком программирования – Nim. В этой части мы разбираем ключевые фичи языка, его недостатки, обозреваем экосистему и обсуждаем самые громкие кейсы применения в продакшене.

Разверните отказоустойчивую инфраструктуру на 9 дата-центров Selectel в России и за рубежом
Реклама, ООО «Селектел»

🎧Слушать выпуск
1
Мощь тайпскрипта
Вот имеем ситуацию, либа для показа табличек, нужно ей передать массив данных и массив колонок.

Колонкам разумеется нужно чтото знать про данные.
Данные могут иметь вложенность, то бишь name: {first, second: string}

Вопрос, как указать для колонок вложенность данных в объектах, не десериализовать же дтошки каждый раз в плоскую структуру.

Ну допустим через точки "name.firstname"
Но это же не типо-безопасно!
TS и литеральные типы, вывело все варианты вместе с вложенностями
gavr_sas
Мощь тайпскрипта Вот имеем ситуацию, либа для показа табличек, нужно ей передать массив данных и массив колонок. Колонкам разумеется нужно чтото знать про данные. Данные могут иметь вложенность, то бишь name: {first, second: string} Вопрос, как указать для…
Тип выглядит так

По факту это просто перебор вариантов, тут явно видно что типам не хватает switchа

never & 'Dynamic length array indexing is not supported' — найс способ сообщить пользователю человекочитаемую ошибку!
type DeepKeys<T> = unknown extends T 
? keyof T
: object extends T
? string
: T extends readonly any[] & IsTuple<T>
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>>
: T extends any[]
? never & 'Dynamic length array indexing is not supported'
: T extends Date
? never
: T extends object
? (keyof T & string) | DeepKeysPrefix<T, keyof T>
: never;
😢1
Штош подкасты по ниму записал, время возвращаться к ниве(це мой язык), ловите работающий баблсорт
#niva
шутка про питон
1
gavr_sas
Штош подкасты по ниму записал, время возвращаться к ниве(це мой язык), ловите работающий баблсорт #niva
Мя спрашивают, если нет пробелов, то как будут работать экспрешоны внутри массивов?
x = {(1 - 1 - 2) 2 3 - 2 - 1 2 sas}
нормально
- А як вставити значення з унарними минусами?
- А для этого у меня есть необязательные запятые
x = { -5, -5 5 5 5} иначе оно будет считаться как (- 5 - 5), а делать пробелы между операторами в бинарных сообщениях я не хочу
извинити
Просто хочу сказать что это валидная строчка на Java 17
public abstract sealed class Shape permits Circle, Rectangle, Square {...}
👍1
У меня возникла замечательная идея, собрать rust
Играли в Yume Nikki?
Anonymous Poll
40%
да
40%
нет
20%
даже не слышал
Вот казалось бы, этот замечательный, красивейший функциональный стиль. Но вот мне сейчас нужно вставить между ними лог...(
Интересно как бы решить такую проблему оставив функциональный стиль
Define a custom operator in #niva doesn't require any specific syntax
Котлин полностью прошел проверку на наличие нормальных tagged union'ов, можно объявлять их отдельно, when достаточно exhaustive
Но настоящих типов суммы конеш не хватает