Предположим, что у меня есть trait в Scala
trait Connection {
def init(name: String)
def dispose
}
И я хочу создать класс, который его реализует. Но я также хочу называть его Connection:
class Connection extends Connection {
// ....
}
Это не сработает. Конечно, я мог бы назвать trait что-то по-другому, но оказалось, что соглашение об именах в Scala говорит, что я должен назвать черту как обычные классы, то есть без какого-либо префикса, который я бы использовал в С# (IConnection где IConnection будет interface).
И в этом конкретном случае более подходящим является название Connection для class и trait.
Или я пропустил что-то в соглашении по именованию Scala?