Как установить scala в ubuntu

Обновлено: 04.07.2024

Scala – строгий статически типизированный JVM-based язык, успешно совмещающий парадигмы объектно-ориентированного и функционального программирования. В языке есть классы, функции высшего порядка, анонимные функции, обобщенное программирование. Использование Java-кода из Scala не вызывает трудностей, синтаксически языки очень близки. В этой статье мы разберем основные элементы языка, достаточные для того, чтобы начать на нем писать.

Настройка окружения

Для того, чтобы все корректно работало из командной строки, рекомендуется прописать переменные среды JAVA_HOME и SCALA_HOME , а также дополнить переменную PATH путями к выполняемым файлам. На Linux и MacOS это делается так:

Для того, чтобы сохранить эти настройки, их надо прописать в

На Windows команда немного другая:

Прописать эти опции постоянно можно в настройках системы: Control Panel → Advanced System Settings → Environmental Variables.

3–5 декабря, Онлайн, Беcплатно

После выполнения всех манипуляций можно проверить результат, запустив:

Простые скрипты и маленькие программы можно, конечно, компилировать и запускать вручную с помощью команд scalac и scala . Однако, по мере того, как количество файлов будет расти, ручная компиляция будет становиться все более нудной. Вместо этого используют системы сборки. Для сборки кода на Scala можно использовать стандартные для Java (неофициально) maven, gradle или ant, но сообщество и сами разработчики рекомендуют sbt (simple build tool).

Примечание: если вы устанавливаете sbt, то можете пропустить отдельную установку scala, так как система сборки скачает ее автоматически

Синтаксис .sbt -файла напоминает синтаксис Scala с некоторыми дополнениями и ограничениями. Минимальный build.sbt выглядит примерно так (пустые строки обязательны):

Исходники помещаются в папку src/main/scala и src/test/scala по пути, соответствующем иерархии пакетов (как в Java). Чтобы собрать, протестировать и запустить проект, необходимо в любой поддиректории проекта выполнить следующие команды:

или через интерактивную консоль:

Последовательное выполнение команд выглядит немного необычно (обратите внимание на точку с запятой в начале — это особенность синтаксиса):

Отличным помощником в разработке будет REPL (Read-Eval-Print-Loop), или по-другому, интерактивная консоль. Очень удобно проверять в ней небольшие функции, отлаживать код или просто посмотреть возможности языка. Для запуска REPL наберите sbt console в командной строке. Вы увидите примерно следующее:

Все! Можно писать команды на Scala и сразу же их выполнять:

Для выхода из REPL можно нажать Ctrl+D. Все примеры на Scala далее можно протестировать в REPL, для вставки больших кусков кода можно воспользоваться командой :paste .

Использование IDE для разработки на Scala не обязательно, однако сильно упрощает процесс. Скала — язык со сложной семантикой, поэтому возможности IDE более ограничены, чем, скажем, при разработке на Java. Тем не менее даже простая подсветка несуществующих методов и автодополнение существующих может сильно облегчить жизнь. Самые популярные IDE для Scala — это IntelliJ IDEA и Eclipse. Для IDEA есть плагин от JetBrains, в случае с Eclipse есть ее вариант Scala IDE.

Переменные, значения и типы.

В Scala переменные и значения объявляются ключевым словом val или var . val — это неизменяемая переменная (значение), аналог final в Java. var — обычная переменная. Например:

Аналогичный код на Java будет выглядеть так:

Здесь мы видим сразу несколько приятных особенностей Scala:

  1. точка с запятой не обязательна (работает автоматический вывод);
  2. указания типа переменной необязательно (также работает автоматический вывод типов);
  3. ключевое слово public подразумевается по умолчанию.

Типы переменных указываются после имени, через двоеточие. Также в Scala нет, как таковых, примитивных типов ( int , float , boolean и т.д.). Их заменяют соответствующие классы Int , Float , Boolean и т.д. Любая переменная — экземпляр какого-либо класса. Иерархия классов начинается с Any , все классы наследуются от него (аналог Object в Java).

Применение привычных операторов, при этом, на самом деле — вызов метода: a + b тождественно a.+(b) . Вариант записи без точки применим к любым методам (с некоторыми ограничениями).

Функции, анонимные функции, методы

Функция в Scala объявляется с помощью ключевого слова def . Пример объявления и применения функции:

Аналогичный код на Java:

Как видно на примере, необязательны не только точка с запятой и указание типа, но и фигурные скобки вокруг единственного выражения и слово return . Более того, его использование считается плохой практикой. Из функции возвращается значение последней выполненной команды.

На самом деле, функция — это тоже объект. Каждая функция в Scala — это экземпляр класса Function , у которого есть метод apply . Поэтому мы вполне можем записать так (знак подчеркивания ставится на место аргумента функции):

Вызов метода apply подразумевается по умолчанию, поэтому использование функций внешне выглядит как в Java:

Все четыре вызова функции идентичны. Представление функций в виде объектов позволяет оперировать с ними, как с остальными объектами: передавать в качестве аргументов, возвращать из других функций, расширять дополнительными методами и т.д., что позволяет Scala полноценно поддерживать парадигму функционального программирования.

Конечно, присутствуют анонимные функции (лямбда-функции). Они объявляются так:

Здесь мы объявляем анонимную функцию, которая принимает один целочисленный аргумент и присвоил ее переменной f , после чего применяем f как обычную функцию.

Классы и объекты

Если вы программировали на Java, многие вещи, касающиеся объектно-ориентированного программирования будут вам знакомы. Класс объявляется ключевым словом class , новый экземпляр — через new . Методы класса — это функции, объявленные в его теле. Поля класса указываются сразу после имени, как список аргументов. При этом, по умолчанию они объявляются как private val . То есть, если мы не укажем никаких модификаторов, указанное поле будет доступно только внутри класса и будет неизменяемым. Класс можно сделать абстрактным, добавив abstract перед объявлением. Основное отличие от Java здесь заключается в отсутствии конструктора. Код, который должен выполняться при создании объекта, пишется прямо в теле класса. Как при этом реализовать несколько конструкторов с различным числом аргументов, мы рассмотрим позже. Пример использования класса:

И аналогичный код на Java:

Как видим, public указывать не обязательно, аргументы конструктора доступны во всем классе, локальное приватное поле создавать также не обязательно.

Кроме того, в Scala мы можем объявить сразу объект, без создания класса, с помощью ключевого слова object . Таким образом реализуется паттерн «Одиночка» (Singleton).

Аналог на Java будет куда более многословен.

В этом примере мы пометили конструктор как protected , чтобы исключить возможность его вызова извне, обращение к объекту будет осуществляться через метод getInstance() , который при первом своем вызове инициализирует экземпляр класс, а при последующих возвращает уже созданный экземпляр. Кроме того, вполне допустимо существование объекта и класса с одним и тем же именем, при этом они делят область видимости. Поэтому необходимость в директиве static отпадает — методы, объявленные не в классе, а в объекте ведут себя как статические. Такой объект называется в терминологии Scala «companion object» («объект-компаньон»).

Вернемся к конструкторам. Вспомним, что при применении любого объекта к некоторым аргументам по умолчанию вызывается метод apply . Этим мы и воспользуемся и напишем класс с несколькими конструкторами, статическими методами, изменяемыми и неизменяемыми полями в идиоматичном для Scala стиле и продублируем этот же код на Java.

Интерфейсы и трейты

Аналогом Java-интерфейса в Scala является трейт (trait). Как ни удивительно, объявляется он с помощью ключевого слова trait . Как и интерфейсы Java, трейты содержат только объявления методов и допускают множественное наследование. В отличие от интерфейса, в трейте можно описывать поля класса и частично реализовывать методы. Наследование как трейтов, так и абстрактных классов осуществляется с помощью extend (первый родитель) и with (последующие родители). Пример использования:

Ключевое слово override необязательно, но его использование является хорошей практикой.

Другие особенности и отличия от Java

Как и в Java, в Scala классы, трейты и функции можно параметризовать. Параметры типов пишутся в квадратных скобках после имени класса или функции. Так определяется интерфейс Foo , который принимает некоторый тип A и содержит метод bar ? который принимает значение типа A и некоторого типа B и возвращает объект типа C . Конкретные типы A , B и C будут определены в реализации интерфейса.

Конструкция if / else всегда возвращает значение выражения, которое стоит последним ввыполняемом блоке. Скобки вокруг условия обязательны, скобки вокруг тела, в котором только одна инструкция, можно опустить.

Блок try / catch / finally выглядит в Scala так:

Циклы while ничем не отличаются от варианта в Java:

А циклы for — наоборот, совсем не похожи (о них мы подробнее поговорим в следующей статье):

Также вы, возможно, могли заметить литерал . . Он имеет тип Nothing который является подкласс любого класса. При вызове . кидает исключение NotImplemented . Это примерно аналог undefined в Python. . можно ставить в качестве заглушки вместо тела функции, к написанию которого вы планируете вернуться позже.

Заключение

Итак, мы установили и настроили среду разработки для Scala, посмотрели основные элементы языка, сходства с Java и отличия от нее. Этого вполне должно хватить для того, чтобы начать писать простой и рабочий код. В следующей статье мы подробнее рассмотрим элементы функционального программирования, case-классы, pattern-matching и другие высокоуровневые особенности языка.

Я новичок в Ubuntu. Я хочу установить последнюю версию Scala 2.11.4 на мою машину, но инструкции на их сайте загадочны для меня. Кто-нибудь может объяснить, как установить его шаг за шагом?

jens-braeuer/+archive/ubuntu/ppa Не для 2.11 еще так будет 2.10 достаточно?

Самый простой способ установить Scala - использовать установочный файл .deb . На странице загрузки вы можете увидеть новейшую стабильную версию. Затем перейдите на страницу « Все загрузки» и найдите эту версию (или Scala 2.11.4 ). Прокрутите вниз до нижней части страницы этой версии и найдите scala-2.11.4.deb (или соответствующую версию) и загрузите ее.

Если вы знакомы с командной строкой, вы можете установить скачанный Debian deb с помощью:

В противном случае вам придется установить GDebi либо через Ubuntu Software Center, либо через терминал с:

После установки GDebi вы можете дважды щелкнуть scala-2.11.4.deb в вашем файловом браузере, чтобы открыть установщик пакета. Наконец, нажмите «Установить пакет», и ваша новая версия Scala будет установлена.

+1 Спасибо за указание на то, что они предоставляют .deb файлы. Однако вам не нужен gdebi, это так просто, как: sudo dpkg -i scala-2.11.4.deb

Просто скачайте scala.deb и установите его:

sudo dpkg -i scala-2.11.4.deb должно быть sudo dpkg -i scala-2.11.6.deb Я не думаю, что scala нужно устанавливать дважды, используя sudo apt-get install scala . dpkg установит его. @PraveenSripati Я не уверен, почему он поставил sudo apt-get install scala , как sudo dpkg -i scala-2.11.6.deb это достаточно, но установка scala.deb с сайта, я думаю, лучше, чем использовать sudo apt-get install scala , так как официальные репозитории более актуальны Я получил dpkg-deb: ошибка: `scala-2.11.6.deb 'не является архивом формата debian

Установка scala 2.11.4 или любой другой версии, отсутствующей в репозитории Ubuntu или в PPA (учтите: для scala потребуется JAVA, и я предполагаю, что она уже установлена. См. Справку по ubuntu, если ее нет).

Извлеките содержимое куда-нибудь в вашей системе. Я бы выбрал / opt / scala /. Что-то вроде:

/ Загрузки / scala-2.11.4.tgz / opt / mv /opt/scala-2.11.4/ / opt / scala /

В файле readme в состоянии "docs" вы можете запустить scala из каталога bin:

Установка

Распакуйте архив и выполните указанные выше команды прямо из bin каталога. Мы рекомендуем добавить полный путь к bin каталогу в PATH переменную окружения.

. где у вас есть следующие инструменты:

Так вы бы сделали

Относительно ПУТИ, упомянутого в прочитанном мной:

Добавьте Scala в ваш $ PATH, добавив эту строку в .profile ваш домашний каталог

Имейте в виду, что имя пути должно быть названо после того, что вы извлекли его тоже. Добавление этого избавит вас от необходимости делать это, cd /opt/scala/ и вы сможете вызывать scala из любой точки вашей системы.

Недавно я успешно установил Scala 2.11.7 на свою машину, выполнив следующие действия. Это была новая установка Scala, и Java 1.8 уже присутствовал.

Перейдите в каталог загрузок и распакуйте архив:

Переместите распакованный каталог в каталог, указанный в инструкции:

Установите переменные среды постоянно. Как указано в вопросе о переполнении стека здесь и используется другими установками программного пакета (например, я нашел Anaconda Python в качестве последнего автоматического редактирования на нем), один из надежных способов сделать это - отредактировать файл .bashrc или добавить эти переменные. в ПУТЬ напрямую с этими командами:

В системах Linux есть две версии Java JDK: версия с открытым исходным кодом OpenJDK и официальная версия Oracle JDK. Обычно система поставляется с OpenJDK, но обычно используется Oracle JDK. Поэтому обычно сначала удаляйте встроенный OpenJDK, а затем устанавливайте Oracle JDK. Scala работает на JVM, поэтому, если scala может работать, вы должны сначала следовать JDK.

1. Удалите OpenJDK.

Как показано выше, это версия OpenJDK, которая поставляется с системой.

2. Загрузите и установите Oracle JDK.

Разархивируйте загруженный сжатый файл в каталог, который необходимо установить (например, в каталог / opt).

После завершения можно пройти ls Команда, чтобы увидеть следующую папку jdk1.8.0_101 :

Затем войдите в папку jdk1.8.0_101 А потом пройти pwd Команда для получения текущего пути (будет использоваться на следующем шаге):

3. Настройте переменные среды, связанные с Java.

Отредактируйте файл конфигурации / etc / profile:
sudo vi /etc/profile
Добавьте в конец файла следующее:


Затем сохраните и выйдите.

Вот небольшое объяснение некоторых переменных среды:
1. JAVA_HOME Указывает путь установки Java, то есть место, куда загружается только что загруженный пакет jdk после распаковки.
2. PATH Представляет собой переменную окружения системы, набираем команду под командной строкой, например ls , pwd Подождите, все смотрят по пути, указанному этой переменной окружения. $PATH Указывает исходное содержимое в этом параметре и следующие : Разделитель, используемый для разделения нескольких путей, последний $JAVA_HOME/bin Он предназначен для добавления каталога bin Java к этой переменной среды. В будущем, если мы введем некоторые команды в командной строке, например java -version ,в $PATH Если он не найден в указанном другом каталоге, он будет $JAVA_HOME/bin Найдите ниже, то есть идите /opt/jdk1.8.0_101/bin Ищите ниже.
3. CLASSPATH Это путь загрузки класса Java, и в него помещаются некоторые системные jar-пакеты.

4. Загрузите и установите сжатый пакет scala.

Разархивируйте загруженный сжатый файл в каталог, который необходимо установить (например, в каталог / opt).

После завершения можно пройти ls Команда, чтобы увидеть следующую папку scala-2.11.8 :

Затем войдите в папку scala-2.11.8 А потом пройти pwd Команда для получения текущего пути (будет использоваться на следующем шаге):

5. Настройте переменные среды, связанные со Scala.

Аналогичным образом отредактируйте файл конфигурации / etc / profile:
sudo vi /etc/profile
Добавьте в конец файла следующее:


Затем сохраните и выйдите.

6. Сделайте файл конфигурации действующим и проверьте

    Сделайте файл конфигурации эффективным
    введите напрямую source /etc/profile это оно


Проверьте версию Java:
java -version

Если вы видите указанное выше, это означает, что среда Java настроена.


Проверьте версию scala:
scala -version

Если вы видите указанное выше, это означает, что настройка среды scala завершена.

Scala язык может работать на Window, Linux, Unix, системы Mac OS X.

Scala основывается на Java, необходимо установить Java (> 1.5 версии) Перед использованием библиотеки Java и большое количество переменных, вы должны использовать Scala.

установка Scala на Mac OS X и Linux

Первый шаг: настройки Java

Убедитесь, что вы установить локальный и JDK 1.5 или более поздней версии, а также создать переменные среды JAVA_HOME и каталог бен JDK.

Мы можем использовать следующую команду, чтобы проверить, является ли установленной Java:

Тогда мы сможем увидеть, если установленной Java компилятор. Введите следующую команду:

Если он установлен, то вы можете обратиться к нашей конфигурации среды разработки Java .


Разархивировать файл пакета, который может быть перемещен в в / USR / местные / доли:

Изменять переменные окружения, если не в администраторы могут использовать привилегии администратора Sudo, изменить профиль файла конфигурации:

В конце файла добавляется:

: Wq сохранить и выйти и перезапустить терминал, выполнить команду SCALA, следующий вывод информации показывает, что установка прошла успешно:

Примечание: во время компиляции, если китайцы будут искажены явление, вид решения: Scala решить китайский искажен

Установить Scala на окне

Первый шаг: настройки Java

Метод обнаружения Цянь Веньи, описанный здесь не будет описана.

Если он установлен, то вы можете обратиться к нашей конфигурации среды разработки Java .


После загрузки дважды щелкните файл Msi, может быть шаг за шагом установки, процесс установки можно использовать каталог установки по умолчанию.

После установки Scala, система автоматически предложит, нажмите кнопку Готово, чтобы завершить установку.

Щелкните правой кнопкой мыши Мой компьютер, выберите пункт "Свойства" для входа на страницу, показанную на рис. Давайте начнем конфигурировать переменные окружения, щелкните правой кнопкой мыши Мой компьютер] - [Свойства] - [Дополнительные параметры системы] - [Переменные окружения], как показано на рисунке:



Установка переменной Path: найти "путь" переменную по системе, как показано на рисунке, нажать кнопку Изменить. В поле "Значение переменной" в верхней части колонны добавьте следующий путь:% SCALA_HOME% \ BIN;% SCALA_HOME% \ JRE \ Bin;

Примечание: точкасзапятой,не пропустите.


Настройка пути к классам переменных: системные переменные, найденные под цифрой «Classpath», нажмите кнопку Изменить, а если нет, то нажмите кнопку "Новый":

  • "Имя переменной": ClassPath
  • "Значение переменной":;..% SCALA_HOME% \ Bin;% SCALA_HOME% \ Lib \ dt.jar;% SCALA_HOME% \ Lib \ tools.jar;

Примечание: "значение переменной" фронт, не пропустите.И, наконец, нажмите кнопку ОК.



Ниже перечислены различные системы могут быть размещены в каталоге (в качестве ссылки):

Читайте также: