В scala, когда вы записываете строку «Hello World» в файл, он записывает
Hello World
(примечание: без двойных кавычек).
В Лиспе есть концепция печати и записи. Один пишет без двойных кавычек, другой включает их, чтобы упростить запись структур данных и их последующее чтение с помощью стандартного считывателя.
Есть ли способ сделать это в Scala?
С одной строкой ее достаточно легко отформатировать, но со многими глубоко вложенными структурами это практически невозможно.
Например, скажем, у меня есть
sealed trait PathSegment
case class P(x:String) extends PathSegment
case class V(x:Int) extends PathSegment
Для создания нужно:
P("X")
или
V(0)
список этих PathSegments
печатается как:
List(P(paths), P(/pets), P(get), P(responses), V(200))
Я хочу распечатать это как:
List(P("paths"), P("/pets"), P("get"), P("responses"), V(200))
Другими словами, я хочу, чтобы строки (и символы), независимо от того, где они находились в структуре, выводились как "foo"
или 'c'