Следующий код Scala делает, к чему я ожидаю это - это печатает каждую строку some_file.txt.
import scala.io.Source
val lines = Source.fromPath("some_file.txt").mkString
for (line <- lines) print(line)
Если я буду использовать println вместо печати, то я ожидаю видеть some_file.txt, распечатанный с двойным интервалом. Вместо этого программа печатает новую строку после каждого символа some_file.txt. Кто-то мог объяснить это мне? Я использую Scala 2.8.0 Бет 1.
lines
- это одна строка, а не какой-то повторяющийся контейнер строк. Это потому, что вы вызвали для него метод .mkString
.
Когда вы перебираете строку, вы делаете это по одному символу за раз. Таким образом, строка
в вашем для
на самом деле не является строкой, это один символ.
Вы, вероятно, намеревались позвонить .getLines
вместо .mkString
Я подозреваю, что для (line <- lines) print (line)
не помещает строку в line
, а вместо персонажа. Делаем вывод ожидаемым, так как \ n
тоже присутствует. Когда вы заменяете print
на println
, каждый символ получает свою собственную строку.