Implicit Unit return type:
def f() {println("ABC")}
Explicit Unit return type:
def g(): Unit = {println("ABC")}
Return type inferred from the last method expression, still Unit because this is the type of println, but confusing:
def h() = println("ABC")
All the methods above are equivalent. I would prefer f() because the lack of = operator after method signature alone is enough for me. Use explicit : Unit when you want to extra document the method. The last form is confusing and actually treated as a warning in intellij-idea.
The = operator is crucial. If it is present it means: “please return whatever the last statement returns” in method body. Obviously you cannot use this syntax for abstract methods. If it is not, Unit is assumed.