Скажем, у меня есть некоторые Scala код вроде этого:Почему я не могу вызвать методы для выражения for-yield?
// Outputs 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
println(squares)
def squares = {
val s = for (count <- 1 to 10)
yield { count * count }
s.mkString(", ");
}
Почему я должен использовать временный Val S? Я попытался это:
def squares = for (count <- 1 to 10)
yield { count * count }.mkString(", ")
Это не может скомпилировать с этим сообщением об ошибке:
error: value mkString is not a member of Int
def squares = for (count <- 1 to 10) yield { count * count }.mkString(", ")
не mkString
Должен быть вызван на сбор возвращенного цикла for
?
His для понимания является лишь синтаксическим сахаром для точно такого же метода отображения, который вы предоставили. На мой взгляд, вы хотите использовать только вопрос вкуса. –