Я обнаружил, что у Scala всегда есть «естественное объяснение» чему угодно. Всегда что-то вроде «ohh, но это просто функция, вызываемая этим и этим объектом с этим и этим параметром». В некотором смысле, ничто на самом деле не является компилятором-магии, поскольку мы знаем его с других языков.Scala «<-» для понимания
Мой вопрос на < - оператор, используемый в следующем коде:
for(i <- 0 to 10) println(i)
В этом примере я могу видеть это переписывается на что-то вроде:
0.to(10).foreach((i:Int)=>println(i))
но это не объясняет, как i был перенесен в анон ymous внутри функции foreach. В точке, где вы пишете i это не объект и еще не объявленная переменная. Итак, что это такое и как оно переносится во внутренность foreach?
Я думаю, что я, наконец, обнаружил нечто, что на самом деле компилятор волшебной
Спасибо за ваше время.
Чтобы уточнить, мой вопрос: как делает < - работа оператора в 1-й строке кода, так как я не объект, на котором она может быть вызвана как функция.
Кажется, это ответ. Я бы предложил вам задокументировать это, если это возможно, сейчас это совершенно очевидно. – Felix
@Felix: Это задокументировано в спецификации. И почти каждая книга Scala, доступная на рынке, охватывает ее. – missingfaktor
О, да, я еще не получил книгу. ожидая окончательного 2,8 книги – Felix