Latest web development tutorials

Scala базовой грамматики

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

Scala и Java большая разница: Scala точка с запятой в конце оператора, не является обязательным.

Мы можем думать о программе Scala представляет собой совокупность объектов по каждому вызова метода для реализации обмена сообщениями. Далее мы приходим к пониманию, класс, понятие объектов, методов, переменных экземпляра:

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

  • Класс - класс является абстрактным объектом, а объект является конкретным экземпляром класса.

  • Метод - метод , описанный в основной акт, класс может содержать несколько методов.

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


Первая программа Scala

Интерактивное программирование

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

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> println("Hello World!")
Hello World!

scala> 

форма сценария

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

object HelloWorld {
   /* 这是我的第一个 Scala 程序
    * 以下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

Далее мы используем команду scalac для компиляции:

$ scalac HelloWorld.scala 
$ ls
HelloWorld$.class	HelloWorld.scala
HelloWorld.class	

После компиляции, мы можем видеть каталоги, созданные под HelloWorld.class файл, который может работать на виртуальной машине Java (JVM) на.

После компиляции, мы можем использовать следующую команду для выполнения программы:

$ scala HelloWorld
Hello, world!
Онлайн примеры >>

Базовый синтаксис

Scala основной синтаксис, обратите внимание на следующее:

  • Чувствительный к регистру - Scala чувствителен к регистру, что означает логотип Привет привет и имеют различные значения в Scala.

  • Имя класса - для всех имени класса первая буква должна быть заглавной.

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

    Пример: класс MyFirstScalaClass

  • Имя метода - первая буква всех методов имена в нижнем регистре.

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

    Пример: Защиту myMethodName ()

  • Имя файла - имя файла программы должно точно совпадать с именем объекта.

    При сохранении файла, он должен сохранить имя объекта для использования (помните Scala чувствительно к регистру), и добавить ".scala" расширение файла. (Если имя файла и имена объектов не совпадают, то программа не будет компилировать).

    Пример: Допустим, "HelloWorld" это имя объекта. Затем файл должен быть сохранен как "HelloWorld.scala"

  • Защиту основных (арг: Array [String ]) - Scala программа от основного метода () начинает обработку, которая является обязательной частью каждой программы входа программы Scala.


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

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

Буквенно-использование начинаться с буквы или символа подчеркивания может сопровождаться буквой или цифрой, символ "$" в Scala также рассматривается в качестве букв. Тем не менее, с использованием идентификатора, приложение к "$" в начале идентификатора зарезервирован Scala компилятор должен избегать использования "$" Start идентификатор, чтобы избежать конфликта.

Scala и Java именования с использованием аналогичного наименования верблюда, первый символ нижнего регистра, например, ToString. Первый символ имена классов или в верхнем регистре. Кроме того, следует избегать того, чтобы подчеркнуть конец идентификатора, чтобы избежать столкновений. Идентификатор символа включает в себя один или несколько символов, например, +,:, и т.д., такие, как:

+ ++ ::: < ?> :->

Он будет использовать сбежавшего идентификатор при Scala внутренней реализации, такие как: -> Использовать $ двоеточие $ минус $ больше, чтобы представить символ. Так что, если вам нужно получить доступ к Java-код: -> метод, вам нужно использовать внутреннее имя $ двоеточие $ минус $ Greater в Scala.

Смешанный алфавитно-цифровой идентификатор из идентификатора позже за которым следует один или более символов, таких как unary_ Scala + имя + метод внутреннего времени выполнения. Буквенный идентификатор для строки "определена, для example` x`` yield`.

Вы можете использовать любой действительный идентификатор Scala между ", Scala будет интерпретировано как идентификатор Scala, типичного для использования Нить метода доходности, в Scala вы не можете использовать Thread.yield () происходит потому, что выход Scala ключевые слова, вы должны использовать Thread.`yield` (), чтобы использовать этот метод.


Scala ключевые слова

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

аннотация случай поймать класс
защиту делать еще продолжается
ложный окончательный в конце концов для
forSome если неявный импорт
ленивый матч новый нуль
объект переопределение пакет частный
защищенный возвращение запечатанный супер
это бросать черта пробовать
правда тип Вэл вар
в то время как с выход
- : = =>
<- <: <% >:
# @

Scala комментарий

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

object HelloWorld {
   /* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
   def main(args: Array[String]) {
      // 输出 Hello World
      // 这是一个单行注释
      println("Hello, world!") 
   }
}

Пустые строки и пробелы

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


Newline

Scala является линия-ориентированный язык, утверждение точкой с запятой (;) или конечные разрывы строк. Программа Scala, точка с запятой в конце оператора, как правило, необязательно. Если вы готовы войти в один, но если есть только одна строка в операторе или не писать. С другой стороны, если вы пишете несколько операторов в строке так необходима точка с запятой. Например

val s = "本教程"; println(s)

пакет Scala

Пользовательские пакеты

Scala определяется с помощью пакета пакетов ключевых слов, в Scala коде, чтобы определить пакет двумя способами:

Первый метод, и Java, как и в заголовок файла определяет имя пакета, этот метод следуют все коды помещены в газете. Например:

package com.w3big
class HelloWorld

Второй метод несколько похож на C #, такие как:

package com.w3big {
  class HelloWorld 
}

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

котировка

Scala с использованием импортного пакета ключевых слов эталонного.

import java.awt.Color  // 引入Color
 
import java.awt._  // 引入包内所有成员
 
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
  ...  // 因为引入了java.awt,所以可以省去前面的部分
}

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

Если вы хотите, чтобы ввести пакет из нескольких членов, вы можете использовать селектор (Picker):

import java.awt.{Color, Font}
 
// 重命名成员
import java.util.{HashMap => JavaHashMap}
 
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

Примечание: По умолчанию, Scala всегда вносил java.lang._, scala._ и Predef._, здесь вы также можете объяснить , почему глава Scala пакета, при использовании Scala опущены.