Scala.Byte vs java.lang.Byte - Какой из них рекомендуется использовать? - PullRequest
1 голос
/ 28 мая 2019

Мне было интересно, какая из двух возможностей предпочтительнее.На мой взгляд, они делают более или менее то же самое.Каковы причины, почему есть две реализации?Есть ли различия в производительности или функциональности?

Ответы [ 2 ]

4 голосов
/ 28 мая 2019

Используйте scala.Byte в большинстве случаев, потому что оно соответствует и byte и java.lang.Byte в терминах Java, и вы обычно хотите byte. Компилятор будет использовать byte для scala.Byte, где это возможно / имеет смысл.

3 голосов
/ 28 мая 2019

По-моему, они более или менее одинаковы.

Это точно так же. Компилятор Scala компилируется в байт-код Java, так же, как компилятор Java также компилируется в байт-код JVM. Следовательно, scala.Byte приведет к тому же байт-коду, что и использование java.lang.Byte.

Каковы причины, по которым существует две реализации?

«Scala работает на JVM, поэтому стеки Java и Scala можно свободно смешивать для полной плавной интеграции». Так Scala описывается на https://www.scala -lang.org / . Так что на самом деле в Scala нет двух реализаций. Вы только что получили возможность использовать вещи из Java, если хотите / должны.

Есть ли различия в производительности или функциональности

Как уже упоминалось выше, вы можете считать их на уровне байт-кода равными. Тем не менее, они, по крайней мере, разные в использовании. Если вы напишите свой код Scala, как в Java, вы можете ожидать такой же производительности.

Какой из них рекомендуется использовать?

Если можете, используйте реализацию Scala. Просто потому, что вы не покинете «мир Scala» и, следовательно, сможете воспользоваться потенциальными улучшениями, сделанными языком.

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