Na normalnych obiektach, mogę wykonać następujące czynności:Dlaczego apply() nie można używać w formie skróconej na obiektach pakietu?
object A {
def apply = "!"
}
A() // "!"
Ale na obiektach pakietu, to nie działa:
package object A {
def apply = "?"
}
A.apply // "?"
A() // compile error
// error: package A is not a value
Czy istnieje pewne fundamentalne ograniczenie? Czy jest to tylko ograniczenie implementacji, które mogę naprawić, nieco poprawiając kompilator?
Co chcesz z tym zrobić? Dlaczego po prostu nie używać zwykłych przedmiotów? –
@SergeyPassichenko - na przykład, aby wywołać pewną metodę bez importowania przez cały kod - jeśli masz obiekt pakietu "małpa" z metodą "zastosuj", wtedy będziesz w stanie zrobić "małpa()" w dowolnym miejscu. To jest przykład - ale mnie też interesuje, dlaczego obiekty pakietu są tak różne od normalnych obiektów. – Rogach