Учебник по 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.