2013-09-06 3 views
2

В Scala классы могут иметь членов типа и членов Value, мне просто интересно, в чем разница между этими двумя и когда вы используете один из них.Тип Члены и значение Члены класса Scala

+0

Важно понимать, что ключевое слово «тип» Scala вводит только новое имя (или семейство имен, если оно параметризуется) для уже существующих типов. –

ответ

3

Элементы ценности (или, скорее, члены термина) являются членами класса, которые представляют некоторую ценность. Это: def s, val s, var s и внутренний object s.

Члены типа являются членами, представляющими тип. Это внутренние классы, черты и абстрактные типы или псевдонимы типов (объявленные или определенные с помощью ключевого слова type).

abstract class A { 
    // examples of term members 
    val someVal = 5 
    var someVar = 0 
    def someMethod(someParam: Int) = someParam * 2 
    object someInnerObject 

    // examples of type members 
    type SomeTypeAlias = List[String] 
    type SomeAbstractType 
    trait SomeInnerTrait 
    class SomeInnerClass 
} 

Я не знаю, есть ли что-то более важное, чтобы сказать об этой классификации. Надеюсь, кто-то может дать более общее объяснение, если он есть.

+2

В принципе, члены типа являются членами, которые являются типами, а члены-значения являются членами, которые являются значениями. Я действительно не думаю, что есть что-то еще, чтобы сказать об этом, если только ОП не предоставит конкретной проблемы. –

Смежные вопросы