Scala - это захватывающий язык программирования, который набирает популярность во всей отрасли. Некоторые говорят, что он может даже заменить Java. Если вы хотите изучить Scala или вам просто интересно, что он может предложить, вы находитесь в нужном месте. Вот что мы обсудим сегодня:

  • Часть 1. Часто задаваемые вопросы по Scala
  • Часть 2: Введение в синтаксис и инструменты Scala
  • Часть 3: Ресурсы для изучения / практики Scala

Если вы хотите начать изучать Scala бесплатно, посетите наш курс для начинающих

Часть 1. Часто задаваемые вопросы по Scala

Что такое Скала?

Язык программирования Scala был создан в 2001 году Мартином Одерски для объединения функционального программирования и объектно-ориентированного программирования в один язык. Название является аббревиатурой от Scalable Language. Scala был разработан для улучшения Java, поэтому вы можете вызывать методы Java, наследовать от классов Java и многое другое. Фактически, библиотеки Java могут быть даже включены в код Scala, а Scala компилируется в байт-коде Java, поэтому он выполняется в JVM (виртуальной машине Java).

Краткое введение в Scala можно найти в нашем блоге

Для чего используется Scala?

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

Какие компании нанимают программистов на Scala?

Такие компании, как Android, Twitter, LinkedIn, Sony, Quora и Foursquare регулярно используют Scala в своих программах. Другие компании, такие как Apple, The Guardian, Meetup, Verizon, SoundCloud, Airbnb и Duolingo, используют Scala в определенных командах или опубликовали заявления о переходе на Scala.

Зачем мне изучать Scala?

  1. Он пользуется большим спросом. Scala становится все более популярной на определенных рынках. По мере роста популярности языка крупные компании нанимают все больше и больше программистов на Scala. Изучение языка сделает вас более востребованными на меняющемся рынке.
  2. Синтаксис Scala точен. По сравнению с Java синтаксис Scala довольно точен, что делает его более читабельным, но более лаконичным.
  3. Scala хорошо платит: Scala недавно заняла 4-е место среди языков программирования с самой высокой зарплатой. Разработчики Scala в США - одни из самых высокооплачиваемых в мире.
  4. Лучшее из обоих миров: Scala сочетает в себе преимущества ООП с функциональным программированием, что делает его более сильным и эффективным языком. Scala также сочетает в себе достоинства статически типизированных и динамических языков.
  5. Scala растет. Как онлайн-сообщество, так и фреймворки Scala растут, поэтому существует множество инновационной информации. Даже некоторые разработчики Java присоединяются и переходят на Scala. Согласно StackOverflow, Scala заняла 17-е место среди наиболее востребованных языков.
  6. В Scala есть интересные функции: Scala предлагает множество интересных функций, которые облегчают вашу жизнь, включая неизменяемость, интерфейс типов, сопоставление с образцом, интерполяцию строк, черты, обширный набор классов и ленивые вычисления.

Scala похожа на Java?

Есть некоторые сходства, поскольку Scala - это язык JVM нового поколения. Они оба объектно-ориентированы и производят один и тот же байт-код. У них также есть похожие библиотеки и компиляторы (называемые javac и scalac).

Основное отличие заключается в способности Scala обрабатывать функциональное программирование и многоядерную архитектуру. Синтаксис Scala также более лаконичен, но изучение Scala обычно немного сложнее, чем Java, поскольку он сочетает в себе обе парадигмы. Scala также поддерживает перегрузку операторов и имеет встроенную ленивую функцию для откладывания вычислений, в то время как Java этого не делает.

Что такое Apache Spark?

Apache Spark - это универсальный механизм распределенной обработки с четырьмя различными API, поддерживающими языки Scala, Python, R и Java. Spark также предоставляет библиотеки для SQL, машинного обучения и потоковой обработки. Spark написан на Scala, поэтому вы часто будете видеть вместе Scala и Spark. Поскольку вы только начинаете, это еще не важно, но знайте, что вы можете увидеть контент, связанный со Spark, когда узнаете о Scala.

Часть 2: Введение в синтаксис и инструменты Scala

Ваш путь к изучению Scala во многом зависит от вашего знакомства с другими языками программирования, такими как Java, C ++ или Haskell. Можно изучить Scala с нуля, но это будет проще с некоторыми минимальными предпосылками, такими как базовое понимание объектно-ориентированного программирования и терминологии программирования. Вот общий прогресс того, что ждет впереди:

  • Установите подходящие инструменты / программы
  • Изучите основы и синтаксис Scala
  • Понять функции Scala
  • Понять, как Scala использует объектно-ориентированное программирование
  • Понимание изменяемых и неизменяемых коллекций
  • Изучите Apache Spark
  • Познакомьтесь с Scala Frameworks и библиотеками

Сегодня мы познакомим вас с инструментами и основами языка Scala, чтобы вы начали. Давайте прямо сейчас!

Обзор инструментов и программ

Сначала получите доступ к Scala

Для этого вам понадобится Java 8 JDK. Java Development Kit (JDK) - это технологический пакет, который можно использовать для компиляции кода Scala в байт-код Java. JDK, включая JVM (виртуальную машину Java), на которой выполняется код. Если у вас есть JDK, есть два популярных варианта среды Scala. Любой подход хорош.

  1. Получите Scala через sbt: sbt - это интерактивный инструмент с открытым исходным кодом для создания программ Scala. Это сборка Scala. инструмент. Здесь вы можете тестировать и компилировать свой код, а также интегрировать фреймворки.
  2. Получите Scala через IDE: интегрированная среда разработки (IDE) включает в себя все инструменты, которые помогают нам писать и выполнять код Scala. Популярной IDE для Scala является IntelliJ IDEA. Загрузив плагин Scala для IntelliJ, вы можете использовать его в качестве среды разработки Scala. Вы можете использовать и другие текстовые редакторы, такие как Eclipse, NetBeans, Vim-scala и VS Code.

Scala и IntelliJ IDEA

Scala и sbt

Во-вторых, изучите библиотеки и фреймворки

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

  • Akka: фреймворк для распределенной обработки
  • Slick: библиотека запросов и доступа к базе данных для хранимых данных
  • Scalaquery / squeryl: базы данных Scala
  • Finagle: открытый доступ RPC из Twitter
  • Scalatra: минималистичный HTTP-фреймворк
  • Play и lift: для веб-разработки и приложений.

Основы синтаксиса Scala

Синтаксис языка программирования - это набор правил написания кода и взаимодействия различных компонентов. Он определяет различные части вашего кода, придавая им смысл, функциональность и взаимосвязь с другими частями вашей программы. Думайте о синтаксисе как о грамматике языка. Давайте рассмотрим пример кода Scala, а затем разберем синтаксис по частям.

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

Во-первых, очень простая программа на Scala: инструкция Hello World.

Эта программа использует метод, который представляет собой инструкцию, выполняющую определенное действие. Метод print указывает программе напечатать все, что указано в скобках. Текст в скобках называется string. В Scala строка - это неизменяемый объект, то есть его нельзя изменить.

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

Здесь вы можете увидеть тот же метод print, что и выше, но вместо этого мы используем управляющие структуры, сопоставление с образцом и переменные для печати более сложного выражения. Это выражение ищет условия и соответствует нашему вводу в соответствии с требованиями. Поскольку переменная red совпадает с case “red”, печатается green.

Совет: всегда сохраняйте файлы Scala под именем .scala

Теперь, когда вы знакомы с тем, как выглядит Scala, давайте разберемся с ним дальше и рассмотрим некоторые основные определения и правила синтаксиса.

Идентификаторы

Идентификаторы используются для идентификации имен классов, имен методов, имен переменных и имен объектов. В Scala существует шесть видов идентификаторов: GRG (класс); a (имя переменной); main (название метода); Main (название объекта); ob (название объекта); и args (имя переменной).

Вот правила, которым вы должны следовать для создания идентификаторов.

  • Идентификаторы Scala чувствительны к регистру.
  • Ключевое слово не может быть идентификатором.
  • Идентификаторы не могут начинаться с цифр.

Ключевые слова

Ключевые слова - это зарезервированные слова, используемые для именования действий. Вы не можете использовать их как имена переменных или объектов. Взгляните на список ниже:

Объекты и классы

Объект в Scala - это сущность, состояние и поведение которой можно изменять. Они похожи на объекты в других языках программирования. Точно так же классы в Scala похожи на чертежи или шаблоны для наших различных объектов. Они определяют свойства и поведение. Классы определяются ключевым словом class. В приведенном ниже коде определяется класс людей, а затем определяется объект - человек - входящий в эту категорию.

Переменные

В Scala вы объявляете переменные с помощью ключевых слов var (изменяемая переменная) или val (неизменяемая переменная). Каждый вид переменной принимает строковое значение. Например var Var1: String = “Scala”. Создав переменные, вы можете выполнять с ними операции с помощью операторов.

Операторы

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

Давайте разберемся

  • def - ключевое слово, используемое для определения функции, а sum - имя функции.
  • За sum следует ( ). Здесь определяются параметры функции, разделенные запятыми. Параметры определяют тип ввода, передаваемого функции.
  • (x: Double, y: Double) сообщает нам, что наша функция принимает два параметра, x и y, которые имеют тип Double.

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

Функции - это группа операторов, выполняющих действия. Вы можете повторно использовать функции в своем коде и применять их к различным переменным или объектам. Например, мы могли бы создать функцию, которая умножает целое число на 2 (см. Код ниже). Вы создаете функции, используя ключевое слово def. Поскольку функции выполняют действия, вам необходимо определить, возвращает оно значение или нет.

Определение функции может появиться в любом месте файла Scala. Функции могут иметь имена с такими символами, как, +, ++, ~, &, -, -,, /,: и т. Д.

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

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

Структуры данных

В Scala существует шесть видов структур данных: массивы, список, наборы, кортежи, карты, параметры. Массивы и список являются наиболее распространенными.

  • Массивы. Массив - это набор похожих элементов. В Scala массивы неизменяемы.
  • Список: списки - это универсальная структура данных, состоящая из элементов одного типа. В Scala они неизменны. Вы должны объявить список, используя List и определив различные элементы.

Структуры управления

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

  • if...Else: Этот классический инструмент для принятия решений в программировании принимает решение на основе того, возвращает ли выражение истинное или ложное значение. Например, программа может проверить, меньше ли число, чем 5, и если да, то вернет «Меньше 5».
  • while: цикл while в Scala утверждает, что основная часть кода будет продолжать выполняться, пока выполняется условие.
  • for: цикл for перебирает значения в коллекции, проверяя, есть ли элементы, которые мы хотим перебрать. Если эти элементы существуют, выполняется переход к следующему значению. Если сейчас, он выходит из кода.
  • try: try используется для проверки определенных частей кода на наличие исключений. Если генерируется исключение, оно перехватывается с помощью caught, поэтому вы не получите ошибку.
  • match: используется для сопоставления с образцом, когда мы берем объект и сопоставляем его со списком, чтобы найти его предопределенное соответствие. Мы использовали это в нашем примере, когда красный был сопоставлен с зеленым.

Теперь, когда у вас есть базовое представление о синтаксисе и словарном запасе Scala, пора приступить к практическим занятиям! Давайте рассмотрим некоторые ресурсы, которые помогут вам применить эти новые знания Scala на практике.

Часть 3: Ресурсы для изучения Scala

По мере роста сообщества Scala растут и удивительные ресурсы, доступные в Интернете. Когда возникают вопросы или вы застреваете, ответ, скорее всего, уже ждет вас. Взгляните на бесплатные ресурсы у вас под рукой.

Форумы / Интернет-сообщества

  • Reddit: интернет-сообщество для вопросов и вдохновения
  • GitHub: ведущее онлайн-сообщество с открытым исходным кодом для вопросов / ресурсов
  • StackOverflow: онлайн-форум с открытым исходным кодом для вопросов, ресурсов и данных.
  • Glitter: чат для программистов на Scala

Блоги и информационные бюллетени

  • Блог Scala: статьи о Scala, написанные создателями языка.
  • Scala Times: еженедельный бюллетень для программистов на Scala
  • Блог SoftwareMill Tech Scala: статьи, чтобы держать вас в курсе Java и Scala

Руководства по стилю / Шпаргалки

Скала Практика

Онлайн-курсы

Если вы хотите изучать Scala в Интернете, самое время начать. Вы можете посетить наш бесплатный курс Изучение Scala с нуля, чтобы начать свое путешествие по Scala. Этот высокоинтерактивный курс предлагает дорожную карту для всего, что вам нужно знать, чтобы быстро освоить Scala. Вот что он охватывает:

  • История Scala
  • Переменные и типы
  • Работа с операторами
  • Строки в Scala
  • Библиотека коллекции
  • Структуры управления
  • Функции / Высший порядок
  • Функции в Scala
  • Классы и объекты

Узнавать что-то новое уже достаточно сложно. Вот почему мы сделали наш курс полностью бесплатным. Этот первый шаг не требует дополнительных затрат. Вы получите пожизненный доступ без скрытой платы за подписку.

Начните изучать Scala прямо сейчас!