I know that objects are treated pretty much like singletons in scala. However, I have been unable to find an elegant way to specify default behavior on initial instantiation. I can accomplish this by just putting code into the body of the object declaration but this seems overly hacky. Using an apply doesn’t really work because it can be called multiple times and doesn’t really make sense for this use case.
Any ideas on how to do this?
Classes and objects both run the code in their body upon instantiation, by design. Why is this “hacky”? It’s how the language is supposed to work. If you like extra braces, you can always use them (and they’ll keep local variables from being preserved and world-viewable).