Size: a a a

2020 April 28

DP

Denis Pavlyuchenko in pro.jvm
Oleksandr Olgashko
ну и под капотом это сделано через имплиситы
в дотти будет другая реализация? Как я слышал, имплиситы, как сущность будут удалены/заменены чем-то?
источник

AK

Alexander Komarov in pro.jvm
Oleksandr Olgashko
интерполяция выглядит как s"foo=$foo"

здесь s сделан на уровне стдлибы, и любой желающий может склепать аналог - на входе подается оригинальная строка и что куда подставляется, на выходе - что угодно

например, в одной библиотеке так сделаны компайлтайм сиквел запросы, в виде sql"select foo from $table where id=${my_id}"
ммм, инъекцию так не подхватить, случаем?
источник

OO

Oleksandr Olgashko in pro.jvm
Denis Pavlyuchenko
в дотти будет другая реализация? Как я слышал, имплиситы, как сущность будут удалены/заменены чем-то?
если просто, то их переименовали на более понятные, с точки зрения Мартина, ключевые слова, основной функционал тот же (это вообще основа основ скалы как языка, никуда оно не денется)
источник

OO

Oleksandr Olgashko in pro.jvm
Alexander Komarov
ммм, инъекцию так не подхватить, случаем?
в правильной имплементации не подхватить, все проверки и замены на уровне библиотеки
источник

Б

Берял in pro.jvm
Alexander Komarov
ммм, инъекцию так не подхватить, случаем?
в том то и дело что этот итерполятор генерит не обязательно строку, а любой тип, например, PreparedStatement
источник

ДЧ

Денис Чиканов in pro.jvm
Oleksandr Olgashko
и где куда больше мощный механизм за "просто строковой интерполяцией", чем вообще в любом известном мне языке
только с этим мощным механизмом они сломали в второй скале эскейпинг символов в не-raw строковой интерполяции
источник

ДЧ

Денис Чиканов in pro.jvm
что конечно забавно
источник

OO

Oleksandr Olgashko in pro.jvm
Денис Чиканов
только с этим мощным механизмом они сломали в второй скале эскейпинг символов в не-raw строковой интерполяции
как именно?
источник

OO

Oleksandr Olgashko in pro.jvm
а, "\" ?
источник

ДЧ

Денис Чиканов in pro.jvm
Oleksandr Olgashko
как именно?
ну то есть буквально s"\"${smth.value}\"" не компилируется из-за наличия \"
источник

ДЧ

Денис Чиканов in pro.jvm
да
источник

OO

Oleksandr Olgashko in pro.jvm
ну как сломали, это целиком на уровне парсера делается
источник

ДЧ

Денис Чиканов in pro.jvm
Oleksandr Olgashko
ну как сломали, это целиком на уровне парсера делается
это не мои проблемы, я программист
источник

OO

Oleksandr Olgashko in pro.jvm
а в дотти то же?
источник

ДЧ

Денис Чиканов in pro.jvm
без понятия, не трогал
источник

ДЧ

Денис Чиканов in pro.jvm
они обещали починить это в v3, так что мб нет
источник

ДЧ

Денис Чиканов in pro.jvm
но в v2 они именно что отказались чинить афаик
источник

ДЧ

Денис Чиканов in pro.jvm
источник

OO

Oleksandr Olgashko in pro.jvm
странно, конечно
источник

OO

Oleksandr Olgashko in pro.jvm
Because it doesn't compile today, we don't risk changing the meaning of existing programs.
источник