Литерал - это объект в Scala,
Well. «Литерал» - это в основном свойство исходного кода. Таким образом, идея «быть объектом» на самом деле не применима.
Что является правильным, так это то, что каждый литерал оценивается как объект.
Итак, литерал 1
в исходном файле на самом деле не является объектом. Это просто часть исходного кода. Но он оценивает как объект, а именно экземпляр класса scala.Int
, который представляет математическую идею целого числа 1 .
, поэтому, если вы сохраните это в переменной, например val x: Int = 5; сделало бы это тоже объектом?
Что вы подразумеваете под «этим»?
x
не объект, это переменная . В Scala, как и почти в любом другом языке, переменные сами по себе не являются объектами, а являются именами объектов. (Технически переменная ссылается на объект.)
Int
также не является объектом, это тип . Типы - это не объекты. Однако возможно, что тип и термин будут иметь одно и то же имя , и причина, по которой это работает, как раз потому, что типы не являются объектами и таким образом, никогда не может быть путаницы в том, говорите ли вы о типе или термине.
Итак, 5
в этом выражении - это объект, или, точнее, как мы как показано выше, это целочисленный литерал с вычислением объекта.