Учебник по Scala

Материал из Викиучебника

Перейти к: навигация, поиск

Содержание

[править] Первая программа

Выдает приветствие:

object HelloWorld{
  def main(args:Array[String]):Unit={
    Console.println("Hello,world!")
  }
}

Выдает приветствие:

object HelloWorld{
  def main(args:Array[String]):Unit={
    Console.println("Hello,world!")
  }
}

Следующий текст.

[править] Идентификаторы

Имена могут иметь 4 формы.

  • Буква, за которой последовательность букв, цифр и знака _: xRoom10a, foldl_:
  • Операторный символ, за которым последовательность операторных символов: +, --,
  • Первая и вторая формы разделенные '_': foldl_:
  • Любая последовательность символов в апострофах: `def`, `yield`, `1+1=2`.

Символ $ используется компилятором и в программах он использоваться не должен.

Зарезервированные слова, в качестве идентификатора использоватся не могут.

abstract    case      catch      class      def
do          else      extends    false      final
finally     for       if         implicit   import
match       new       null       object     override
package     private   protected  requires   return
sealed      super     this       throw      trait
try         true      type       val        var
while       with      yield   
_ : = => <- <: < % > : # @ 

Одинарные кавычки используются, чтобы обратится к индентификаторам Java, которые в Scala являются зарезервироваными. Пример:Thread.`yield`().

[править] Комментарии

За двумя наклонными чертами подряд //, без пробела между ними, начинается комментарий, продолжающийся до конца строки.

За наклонной чертой и звездочкой /* начинается комментарий, который может занимать несколько строк, до звездочки и наклонной черты */ (без пробелов между этими знаками).

За наклонной чертой и двумя звездочкой /** начинается комментарий для документирования, который может занимать несколько строк, до звездочки и наклонной черты */ (без пробелов между этими знаками). Такой комментарий может обрабатыватся программой scaladoc, она извлекает эти комментарии в отдельные файлы формата HTML и создает гиперссылки между ними. Так программа самодокументируется. В такой комментарий можно вставить указания программе javadoc , которые начинаются с символа @.

/**
 * Разъяснение содержания и особенностей программы... 
 * @author Имя Фамилия (автора) 
 * @version 1.0 (это версия программы) 
 */ 
object HelloWorld{
  def main(args:Array[String]):Unit={
    Console.println("Hello,world!")
  }
}

Звездочки в начале строк не имеют никакого значения, они написаны просто для выделения комментария.

[править] Литералы

[править] Числа

Целые константы можно записывать в трех системах счисления:

  • в десятичной форме: +5, -7, 12345678 ;
  • в восьмеричной форме, начиная с нуля: 027, -0326, 0777 ; в записи таких констант недопустимы цифры 8 и 9;
  • в шестнадцатеричной форме, начиная с нуля и латинской буквы х или X: 0xff0a, 0xFC2D, 0x45a8, 0X77FF ; здесь строчные и прописные буквы не различаются.

Целые константы хранятся в формате типа scala.Int.

В конце целой константы можно записать букву прописную L или строчную l , тогда константа будет сохраняться в формате типа scala.Long: +25L, -0371L, OxffL, OXDFDFL .

Не используйте при записи длинных целых констант строчную латинскую букву l, ее легко спутать с единицей.

Действительные константы записываются только в десятичной системе счисления в двух формах:

  • c фиксированной точкой: 37.25, -128.678967, +27.035 ;
  • с плавающей точкой: 2.5е34, -0.345е-25, 37.2Е+4 ; можно писать строчную или прописную латинскую букву Е ; пробелы и скобки недопустимы.

Действительные константы хранятся в формате типа scala.Double.

В конце действительной константы можно поставить букву F (или f), тогда константа будет сохраняться в формате типа float: 3.5F, -45.67F, 8.9e-5F.

[править] Символы

Для записи одиночных символов используются следующие формы.

Печатные символы можно записать в апострофах: ' а ', ' N ', ' ? '.

Управляющие символы записываются в апострофах с обратной наклонной чертой:

  • ' \n ' — символ перевода строки newline с кодом ASCII 10;
  • ' \r ' — символ возврата каретки CR с кодом 13;
  • ' \f ' — символ перевода страницы FF с кодом 12;
  • ' \b ' — символ возврата на шаг BS с кодом 8;
  • ' \t ' — символ горизонтальной табуляции НТ с кодом 9;
  • ' \\ ' — обратная наклонная черта;
  • ' \" ' — кавычка;
  • ' \' ' — апостроф.

Код любого символа с десятичной кодировкой от 0 до 255 можно задать, записав его не более чем тремя цифрами в восьмеричной системе счисления в апострофах после обратной наклонной черты: ' \123 ' — буква S , ' \346 ' — буква Ж в кодировке СР1251. Не рекомендуется использовать эту форму записи для печатных и управляющих символов, перечисленных в предыдущем пункте, поскольку компилятор сразу же переведет восьмеричную запись в указанную выше форму. Наибольший код ' \377 ' — десятичное число 255. Код любого символа в кодировке Unicode набирается в апострофах после обратной наклонной черты и латинской буквы ц ровно четырьмя шестнад-цатеричными цифрами: ' \u0053 ' — буква S , ' \u0416 ' — буква Ж . Символы хранятся в формате типа char (см. ниже).

Прописные русские буквы в кодировке Unicode занимают диапазон от ' \u0410 ' — заглавная буква А , до ' \u042F ' — заглавная Я , строчные буквы от ' \u0430 ' — а , до ' \044F ' — я .

В какой бы форме ни записывались символы, компилятор переводит их в Unicode, включая и исходный текст программы.

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

Вот некоторые примеры:

"Это строка\nс переносом"

"\"Спартак\" — Чемпион!"

Строки символов нельзя начинать на одной строке исходного кода, а заканчивать на другой.

[править] Логический тип

Булевские константы записываются: true и false.