Я кодировал в Scala и делал несколько быстрых рефакторингов в Intellij, когда я наткнулся на следующую часть странности...
package misc
/**
* Created by abimbola on 05/10/15.
*/
object WTF extends App {
val name: String = name
println(s"Value is: $name")
}
Затем я заметил, что компилятор не жаловался, поэтому я решил попытаться запустить это, и у меня получился очень интересный вывод
Value is: null
Process finished with exit code 0
Может ли кто-нибудь сказать мне, почему это работает?
ИЗМЕНИТЬ:
-
Первая проблема, значение name получает ссылку на себя, даже если она еще не существует; почему точно компилятор Scala не взорвался с ошибками???
-
Почему значение присваивания null?