Scala в примерах: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 875:
<font size=3><syntaxhighlight lang=Scala>
push[B >: Nothing](elem: B): Stack[B]
</syntaxhighlight></font>.
 
Локальный вывод типов определит, что типовой параметр <tt>B</tt> должен быть <tt>String</tt> в применении <tt>EmptyStack.push("abc")</tt>. Результирующий тип этого применения — <tt>Stack[String]</tt>, который, в свою очередь, имеет метод
Строка 881:
<font size=3><syntaxhighlight lang=Scala>
push[B >: String](elem: B): Stack[B]
</syntaxhighlight></font>.
 
Последняя часть определения значения, приведенного выше, это применение этого метода к <tt>'''new''' AnyRef()</tt>. Локальный вывод типов определит, что типовой параметр <tt>B</tt> должен на этот раз быть <tt>AnyRef</tt>, с результирующим типом <tt>Stack[AnyRef]</tt>. То есть, тип, присвоенный значению <tt>s</tt> — <tt>Stack[AnyRef]</tt>.