Scala — это захватывающий язык программирования, который набирает популярность во всей отрасли. Некоторые говорят, что он может даже заменить Java.
Если вы хотите изучить Scala или вам просто интересно, что он может предложить, вы попали в нужное место. Вот что мы рассмотрим сегодня:
- Часть 1: Часто задаваемые вопросы по Scala
- Часть 2: Введение в синтаксис и инструменты Scala
- Часть 3: Ресурсы для изучения/практики Scala
- Изучите Scala бесплатно
- Часть 1. Часто задаваемые вопросы по Scala
- Что такое Scala?
- Для чего используется Scala?
- Какие компании нанимают программистов Scala?
- Зачем вам изучать Scala?
- Похож ли Scala на Java?
- Что такое Apache Spark?
- Продолжайте изучать Scala бесплатно.
- Часть 2 : Введение в синтаксис и инструменты Scala
- Обзор инструментов и программ
- Основы синтаксиса Scala
- Идентификаторы
- Ключевые слова
- Объекты и классы
- Переменные
- Операторы
- Функции и методы
- Структуры данных
- Структуры управления
- Часть 3: Ресурсы для изучения Scala
- Форумы/Интернет-сообщества
- Блоги и информационные бюллетени
- Бесплатный онлайн-курс для образовательных учреждений
- Продолжить изучение Scala и функциональное программирование
Изучите Scala бесплатно
Возьмите практические уроки Scala от Educative бесплатно, без какого-либо опыта.
Изучите Scala с нуля
Часть 1. Часто задаваемые вопросы по Scala
Что такое Scala?
Язык программирования Scala был создан в 2001 году Мартином Одерски для объединения функционального программирования и объектно-ориентированного программирования в один язык. Название является аббревиатурой от Scalable Language . Scala был разработан для улучшения Java, поэтому вы можете вызывать методы Java, наследовать от классов Java и т. Д.
Фактически, библиотеки Java могут быть даже включены в код Scala, а Scala скомпилирована в Байт-код Java, поэтому он выполняется в JVM (виртуальной машине Java).
Для чего используется Scala?
Scala обычно используется для сильные статические системы, наука о данных и машинное обучение. Scala используется в финансовых приложениях, системах управления контентом, платформах онлайн-обучения, распределенных приложениях и т. Д.
Какие компании нанимают программистов Scala?
Такие компании, как Google (для Android, Twitter, LinkedIn, Sony, Quora и Foursquare, регулярно используют Scala в своих программах. Другие компании, такие как Apple, The Guardian, Meetup, Verizon, SoundCloud, Airbnb и Duolingo, используют Scala в определенных группах. или опубликовали заявления о переходе на Scala.
Зачем вам изучать Scala?
-
Он пользуется большим спросом: Scala становится все более популярной на определенных рынках. По мере того, как язык становится все более популярным, крупные компании нанимают все больше и больше программистов на Scala. Изучение языка сделает вас более востребованными для изменение рынка.
-
Синтаксис Scala точен: По сравнению с Java, синтаксис Scala довольно точен, что делает его более читабельным более кратко.
-
Scala хорошо платит: Scala недавно заняла 4-е место среди языков программирования с самой высокой зарплатой. Разработчики Scala в США — одни из самых высокооплачиваемых в мире.
-
Лучшее из обоих миров: Scala сочетает в себе преимущества ООП с функциональным программированием, что делает его более сильным и эффективным языком. Scala также сочетает в себе достоинства статически типизированных и динамических языков..
-
Scala растет: как онлайн-сообщество, так и фреймворки Scala растут, поэтому есть много инновационной информации. . Даже некоторые разработчики Java присоединяются и переходят на Scala. Согласно StackOverflow, Scala заняла 17-е место среди наиболее востребованных языков.
-
У 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.
Продолжайте изучать Scala бесплатно.
Изучите Scala вдвое быстрее, и все за бесплатно. Практические текстовые курсы Educative позволяют вам перепрофилировать навыки за небольшую часть времени.
Изучите Scala с нуля
Часть 2 : Введение в синтаксис и инструменты Scala
Ваш путь к изучению Scala во многом зависит от вашего знакомства с другими языками программирования, такими как Java, C ++ или Haskell.
Можно изучить Scala с нуля, но это будет проще с несколькими минимальными предпосылками, такими как базовое понимание объектно-ориентированного программирования и терминологии программирования. .
Обзор инструментов и программ
Сначала получите доступ к Scala
Для этого вам понадобится Java 8 JDK .. Java Development Kit (JDK) — это технологический пакет, который можно использовать для компиляции кода Scala в байт-код Java. JDK, включая JVM (виртуальную машину Java), на которой выполняется код. Если у вас есть JDK, есть два популярных варианта среды Scala. Подойдет любой подход.
-
Получить Scala через sbt: sbt — это интерактивный инструмент с открытым исходным кодом для создания программ Scala. . Это сборка Scala. инструмент. Здесь вы можете тестировать и компилировать свой код, а также интегрировать фреймворки.
-
Получить Scala через IDE: Интегрированная среда разработки (IDE) включает в себя все инструменты, которые помогают нам писать и выполнять код Scala. Популярной IDE для Scala является IntelliJ IDEA. Загрузив плагин Scala для IntelliJ, вы можете использовать его в качестве среды разработки Scala.
Вы можете использовать и другие текстовые редакторы, такие как Eclipse, NetBeans, Vim-scala и VS Code.
Scala и IntelliJ IDEA:
Во-вторых, изучите библиотеки и фреймворки.
Библиотеки и фреймворки подобны коллекциям предварительно написанного кода, чтобы облегчить вам жизнь программиста на Scala. Вы можете интегрировать их в свой код, чтобы сэкономить время и силы. Они также предоставляют действительно удобные функции для создания интерактивных и динамичных программ. Существует длинный список библиотек и фреймворков Scala, но пусть он вас не ошеломит. Используемые вами фреймворки и библиотеки во многом зависят от ваших уникальных потребностей, так что вы, вероятно, разберетесь с этим в процессе. Вот несколько из самых популярных, с которых можно начать:
- Akka : фреймворк для распределенной обработки
- Slick : запрос к базе данных и библиотека доступа для сохраненных данных
- Scalaquery / squeryl : Базы данных Scala
- Finagle : RPC с открытым доступом из Twitter.
- Scalatra : минималистичный HTTP framework
- Play и lift : для веб-разработки и приложений
Основы синтаксиса Scala
Синтаксис языка программирования — это набор правил написания кода и обеспечения взаимодействия различных компонентов.
Это определяет различные части вашего кода, придавая им смысл, функциональность и взаимосвязь с другими частями вашей программы. Думайте о синтаксисе как о грамматике языка.
Давайте взглянем на пример кода Scala, а затем разберем синтаксис по частям..
Во-первых, очень простая программа на Scala: оператор Hello World
объект Main расширяет приложение {println ("Hello world!")}
Эта программа использует метод, который представляет собой инструкцию, выполняющую определенное действие. Метод print
указывает программе распечатать все, что указано в скобках. Текст в круглых скобках называется строкой
. В Scala строка — это неизменяемый объект, то есть ее нельзя изменить.
Теперь посмотрим на более сложную программу Scala, которая печатает дополнительный вторичный цвет введенного первичного цвета.
var testVariable = " red "testVariable match {case" blue "=> print (" orange ") case" yellow "=> print (" purple ") case" red "=> print (" green ") case _ => print (" not a основной цвет ")}
Здесь вы можете увидеть тот же метод print
, что и выше, но вместо этого мы используем управляющие структуры, сопоставление с образцом и переменные для печати более сложного выражения. Это выражение ищет условия и соответствует нашему вводу в соответствии с требованиями. Поскольку переменная red
соответствует регистру «красный»
, она печатает зеленый
.
Совет: всегда сохраняйте файлы Scala как
.scala
Теперь, когда вы знакомы с тем, как выглядит Scala, давайте перейдем к далее вниз и пройдемся по некоторым основным определениям и правилам синтаксиса.
Идентификаторы
Идентификаторы используются для идентификации имен классов, названного метода, имена переменных и имена объектов. В Scala существует шесть видов идентификаторов: GRG
(класс); a
(имя переменной); main
(название метода); Main
(имя объекта); ob
(имя объекта); и args
(имя переменной).
Вот правила, которым вы должны следовать для создания идентификаторов.
- В идентификаторах Scala учитывается регистр.
- Ключевое слово не может быть идентификатором.
- Идентификаторы не могут начинаться с цифр.
Ключевые слова
Ключевые слова — это зарезервированные слова, используемые для именования действий. Вы не можете использовать их как имена переменных или объектов. Взгляните на список ниже:
Объекты и классы
Объект в Scala — это сущность, состояние и поведение которой можно изменять. Они похожи на объекты в других языках программирования. Точно так же классы в Scala похожи на чертежи или шаблоны для наших различных объектов. Они определяют свойства и поведение. Классы определяются ключевым словом class
. В приведенном ниже коде определяется класс людей, а затем определяется объект — человек — для включения в эту категорию.
class Person {var name: String = "temp" var пол: String = "temp" var age: Int = 0def walking = println (s "$ name is walking") def talk = println (s "$ name is speak")}//Создание объекта класса Personval firstPerson = new Person
Переменные
В Scala вы объявляете переменные с помощью ключевых слов var
(изменяемая переменная) или val
(неизменяемая переменная). Каждый вид переменной принимает строковое значение. Например, var Var1: String = «Scala»
. Создав переменные, вы можете выполнять с ними операции с помощью операторов.
Операторы
Операторы воздействуют на ваши переменные. Есть несколько различных категорий операторов: арифметические, реляционные, логические, побитовые и присваивания. Они похожи на операторы в других языках программирования. Например, вы можете добавить две переменные с помощью арифметического оператора +
.
def sum (x: Double, y: Double): Double = {x + y}
Давайте разберем это
-
def
— ключевое слово, используемое для определение функции, аsum
— это имя функции. -
sum
следует за( )
. Здесь определяются параметры функции, разделенные запятыми. Параметры определяют тип ввода, передаваемого функции. -
(x: Double, y: Double)
сообщает нам, что наша функция принимает два параметра,x
иy
, которые имеют типDouble
.
Функции и методы
Функции — это группа операторов, выполняющих действия. Вы можете повторно использовать функции в своем коде и применять их к различным переменным или объектам.. Например, мы могли бы создать функцию, которая умножает целое число на 2 ( см. Код ниже ). Вы создаете функции, используя ключевое слово def
. Поскольку функции выполняют действия, вам необходимо определить, возвращает оно значение или нет.
Определение функции может появиться в любом месте файла Scala. Функции могут иметь имена с такими символами, как, +, ++, ~, &, -, -,,/,: и т. Д.
Функции похожи на методы, и иногда они используются взаимозаменяемо. Однако метод Scala является частью именованного класса, тогда как функция — это сам объект, который может быть определен для переменной.
def mul2 (m: Int): Int = m * 2 Выход: mul2: (m: Int) Int
В функциональном программировании функции рассматриваются как первоклассные значения , что означает, что они можно передать в качестве параметра другой функции. Это функции высшего порядка, называемые вложенными функциями.
Структуры данных
В Scala существует шесть видов структур данных: массивы, списки, наборы. , Кортеж, карты, вариант. Наиболее распространены массивы и список.
-
Массивы: массив — это набор похожих элементов. В Scala массивы неизменяемы.
-
List: списки — это универсальная структура данных, составленная из элементов одного типа. . В Scala они неизменны. Вы должны объявить список с помощью
List
и определения различных элементов.
Структуры управления
Структура управления анализирует переменные и принимает решения на основе заранее определенных параметров. В Scala есть несколько различных типов структур потока управления, которые похожи на другие языки программирования. Scala привносит функциональный подход в императивную парадигму, поэтому у вас больше абстракции управления.
-
if ... Иначе
. Этот классический инструмент программирования принимает решение на основе того, возвращает ли выражение значение true или false. Например, программа может проверить, меньше ли число 5, и если да, то вернет «Меньше 5» -
while
: цикл while в Scala утверждает, что основная часть кода будет продолжать выполняться, пока выполняется условие. -
for
: цикл for перебирает значения в коллекции, проверяя, есть ли элементы, которые мы хотим перебрать. Если эти элементы существуют, он переходит к следующему значению. Если сейчас, он выходит из кода. -
try
: try используется для тестировать определенные части кода на предмет исключений. Если генерируется исключение, оно перехватывается с помощьюcatch
, поэтому вы не получите ошибку. -
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 в 2019 году
- Что такое функциональное программирование? Объясняется на Python, JS и Java.
- Как использовать функции Python Lambda: 5-минутное руководство