Все ли объекты в Scala? - PullRequest
       2

Все ли объекты в Scala?

0 голосов
/ 16 июня 2020

Литерал - это объект в Scala, поэтому, если вы сохраните его в переменной, например val x: Int = 5; сделало бы это тоже объектом? По какой-то причине все кажется объектом в Scala.

1 Ответ

1 голос
/ 16 июня 2020

Литерал - это объект в Scala,

Well. «Литерал» - это в основном свойство исходного кода. Таким образом, идея «быть объектом» на самом деле не применима.

Что является правильным, так это то, что каждый литерал оценивается как объект.

Итак, литерал 1 в исходном файле на самом деле не является объектом. Это просто часть исходного кода. Но он оценивает как объект, а именно экземпляр класса scala.Int, который представляет математическую идею целого числа 1 .

, поэтому, если вы сохраните это в переменной, например val x: Int = 5; сделало бы это тоже объектом?

Что вы подразумеваете под «этим»?

x не объект, это переменная . В Scala, как и почти в любом другом языке, переменные сами по себе не являются объектами, а являются именами объектов. (Технически переменная ссылается на объект.)

Int также не является объектом, это тип . Типы - это не объекты. Однако возможно, что тип и термин будут иметь одно и то же имя , и причина, по которой это работает, как раз потому, что типы не являются объектами и таким образом, никогда не может быть путаницы в том, говорите ли вы о типе или термине.

Итак, 5 в этом выражении - это объект, или, точнее, как мы как показано выше, это целочисленный литерал с вычислением объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...