Scala: различия между версиями

Содержимое удалено Содержимое добавлено
м fix homoglyphs: convert Cyrillic characters in [с]ase to Latin
м <source> -> <syntaxhighlight> (phab:T237267)
Строка 4:
== Первая программа ==
Вывод приветствия в консоли:
<sourcesyntaxhighlight lang="scala">
object HelloWorld{
def main(args:Array[String]){
Строка 10:
}
}
</syntaxhighlight>
</source>
 
== Идентификаторы ==
Строка 35:
 
Обратные кавычки используются, чтобы обратиться к идентификаторам Java, которые в Scala являются зарезервированными. Пример:
<sourcesyntaxhighlight lang="Scala">Thread.`yield`()</sourcesyntaxhighlight>.
 
== Комментарии ==
Строка 44:
За наклонной чертой и двумя звездочками /** начинается комментарий для документирования, который может занимать несколько строк, до звездочки и наклонной черты */ (без пробелов между этими знаками). Такой комментарий может обрабатываться программой scaladoc, она извлекает эти комментарии в отдельные файлы формата HTML и создает гиперссылки между ними. Так программа самодокументируется. В такой комментарий можно вставить указания программе javadoc, которые начинаются с символа @.
 
<sourcesyntaxhighlight lang="scala">
/**
* Разъяснение содержания и особенностей программы...
Строка 55:
}
}
</syntaxhighlight>
</source>
 
Звездочки в начале строк не имеют никакого значения, они написаны просто для выделения комментария.
Строка 146:
Методы начинаются с зарезервированного слова <tt>def</tt>. Потом пишется его сигнатура (имя, список параметров и опционально тип возвращаемого значения), ставится знак '=', затем тело метода.
 
<sourcesyntaxhighlight lang="scala">
def funcName (m: Int): Int = m + 1
</syntaxhighlight>
</source>
 
== Классы ==
Определение класса:
<sourcesyntaxhighlight lang="scala">
class Complex(real:double, imaginary:double){
def re() = real
def im() = imaginary
}
</syntaxhighlight>
</source>
Аргументы класса становятся аргументами конструктора, когда мы создаем новый объект этого класса: <code>new Complex(23.4,56.7)</code>.
Этот класс содержит два метода <tt>re</tt> и <tt>im</tt>, дающих доступ к действительной и мнимой части числа. Тип возращаемого значения этих методов не задан явно. Он автоматически выводится компилятором, который смотрит на правую часть методов и решает, что тип обоих методов <code>double</code>.
Строка 173:
== Коллекции ==
'''Генерация коллекции типа IndexedSeq[+A]:'''
<sourcesyntaxhighlight lang="java">
val coll1 = 1.to(10) // Или
val coll2 = for(i<- 1.to(10)) yield i
</syntaxhighlight>
</source>
 
== См. также ==