Интерполяция строки Scala с подчеркиванием - PullRequest
0 голосов
/ 06 мая 2018

Я новичок в Scala, поэтому не стесняйтесь указывать мне направление документации, но я не смог найти ответ на этот вопрос в своем исследовании.

Я использую scala 2.11.8 с Spark2.2 и пытаюсь создать динамическую строку, содержащую dateString1_dateString2 (с подчеркиванием), используя интерполяцию, но при этом возникают некоторые проблемы.

val startDt = "20180405" 
val endDt = "20180505"

Это похоже на работу:

s"$startDt$endDt"
res62: String = 2018040520180505

Но это не удалось:

s"$startDt_$endDt"
<console>:27: error: not found: value startDt_
       s"$startDt_$endDt"
          ^

Я ожидал, что этот простой обходной путь с выходами сработает, но не даст желаемых результатов:

s"$startDt\\_$endDt"
res2: String = 20180405\_20180505

Обратите внимание, что этот вопрос отличается от Почему _ нельзя использовать внутри интерполяции строк? в том, что этот вопрос ищет решение для интерполированной строковой интерполяции, в то время как предыдущий вопрос является гораздо более внутренним -скала сосредоточена.

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете использовать явные фигурные скобки:

@ s"${startDt}_${endDt}"
res11: String = "20180405_20180505"

Ваш код:

s"$startDt_$endDt"

терпит неудачу, так как startDt_ является допустимым идентификатором, и Scala пытается интерполировать эту несуществующую переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...