У меня есть текст типа "$ $abc $$abc ${a} ${}"
. Я хотел бы полностью отключить интерполяцию строк для строки, а не избегать каждого отдельного $
из строки. Что я должен делать? В Scala вы объявляете строку, в которой интерполяция включена с помощью s"$ $abc $$abc ${a} ${}"
, в то время как обычная строка не интерполируется.
Как отключить интерполяцию строк в Котлине?
Ответы (1)
Интерполяция строк доступна как для обычных, так и для необработанных строк ("""
). Поэтому вам нужно избегать их, что, очевидно, проще в обычном String
(см. здесь).
"$ \$abc \$\$abc \${a} \${}"
Извините, но другого выхода, боюсь, нет.
person
s1m0nw1
schedule
01.06.2018
На самом деле было бы неплохо иметь что-то вроде C# дословной строки
@"$a$b$c" == "\$a\$b\$c"
, не так ли?
- person Amir Abiri; 18.08.2019
Жаль, что синтаксис с одинарными кавычками сохранился только для символов. Семантическое дерево IMO Kotlin может считать, что «$» и «x» — это одиночные символы, а «$$» и «xx» — неинтерполированные строки, поскольку вы всегда можете использовать \$ и x для строк с длиной одного символа. Может в будущей версии? Поскольку эволюция полностью обратно совместима (за исключением синтаксического анализа тестовых случаев, ожидающих ошибки синтаксического анализа), это вполне выполнимо.
- person Claude Brisson; 27.11.2020