953.88K

ОСНОВЫ ЯЗЫКА SCALA

1.

ОСНОВЫ ЯЗЫКА SCALA

2.

• Для закачки используем сайт
https://get-coursier.io/docs/cli-installation
• скачиваем файл
cs-x86_64-pc-win32.zip
Распаковываем его и запускаем инсталляцию.
2

3.

3

4.

• После инсталляции создается папка bin по
пути
c:\Users\HP\AppData\Local\Coursier\data\bin\
• Здесь Coursier служит как навигатор, если
нужно искать созданную папку. Ее (bin)
содержимое таково:
4

5.

• Компилятор – это scalac.bat. Выполнение
программ реализуется с помощью scala.bat.
5

6.

object ScalaExample{
def main(args:Array[String])={
println ("Hello Scala - Zur Mich") }
}
>scalac first.scala
6

7.

object Person {
def hello(name: String): Unit = println(s"Hello,
$name!")
}
object Main {
def main(args: Array[String]): Unit = {
Person.hello("Alice")
Person.hello("Bob")
}
}
Hello, Alice!
Hello, Bob!
7

8.

object MyModule {
def myFunction(x: Int, y: Int): Int = x + y
val PI = 3.14159
}
object Main {
def main(args: Array[String]): Unit = {
println(MyModule.myFunction(2, 3)) // prints 5
println(MyModule.PI) // prints 3.14159
}
}
8

9.

object Person {
def hello(name: String): Unit = println(s"Hello, $name!")
}
object Main {
def main(args: Array[String]): Unit = {
Person.hello("Alice")
Person.hello("Bob")
}
}
object Main2 {
def main(args: Array[String]): Unit = {
Person.hello("Alice2")
Person.hello("Bob")
}
}
9

10.

Функции
object ScalaExample2{
def f(data: Int): Int = data + 1
def main(args:Array[String])={
println("x="+f(1))
}
}
10

11.

object ScalaExample2{
def f(data: Int): Int = {data + 1}
def main(args:Array[String])={
println("x="+f(1))
}
}
11

12.

Пример возведения в квадрат.
object ScalaExample2{
def f(data: Int): Int = data*data
def main(args:Array[String])={
println("x="+f(2))
}
}
12

13.

object ScalaExample2{
def f(data: Int): Int = {data + 1}
def g(data2: Int): Int = data2 * 2
def main(args:Array[String])={
println("x="+f(g(3)))
}
}
13

14.

object ScalaExample4{
def f(data: Int): Int = {data + 1}
def g(data2: Int): Int = data2 * 2
def main(args:Array[String])={
println("x="+f(g(g(3))))
}
}
14

15.

Примеры смешения Java и Scala
import java.util.ArrayList
object Main23 {
def main(args: Array[String]): Unit = {
val list = new ArrayList[String]()
list.add("foo")
list.add("bar")
list.add("apple")
println(list)
}
}
15

16.

Примеры смешения Java и Scala
import java.util.ArrayList
object Main23 {
def main(args: Array[String]): Unit = {
val list = new ArrayList[String]()
list.add("foo")
list.add("bar")
val item = list.get(0)
println(item)
}
}
16

17.

Примеры смешения Java и Scala
import java.util.ArrayList
object Main23 {
def main(args: Array[String]): Unit = {
val list = new ArrayList[String]()
list.add("foo")
list.add("bar")
val index = 1
val item = list(0) // конструкция scala, с java не идет!
println(item)
}
}
17

18.

Примеры смешения Java и Scala
import java.util.ArrayList
object Main23 {
def main(args: Array[String]): Unit = {
val list = new ArrayList[String]() // arraylist в scala
list.add("foo")
list.add("bar")
list.add("apple");
println(list.indexOf("bar")) // java
}
}
18

19.

Рекурсия
object ScalaExample2{
def sumUp(z: List[Int]): Long = {
if(z.isEmpty) 0
else {
z.head + sumUp(z.tail)
}
}
def main(args:Array[String])={
println("x="+sumUp(List(1,2,3,4)))
}
}
19

20.

Lambda-выражения в SCALA
object ScalaExample2{
def main(args:Array[String])={
// lambda expression
val multiply = (x:Int, y:Int) => x * y
println(multiply(2, 3))
}
}
Тип выражения выводится как (Int, Int) => Int
20

21.

// lambda expression
val multiply = (Int, Int) => Int = (x:Int, y:Int) => x * y // явное задание
типа
object ScalaExample2{
def main(args:Array[String])={
// lambda expression
val multiply = (Int, Int) => Int = { val z= x * y;
z*z;}
println(multiply(2, 3))
}
}
21

22.

object ScalaExample2{
def main(args:Array[String])={
// list of numbers
val ListOfNumbers = List(1,2,3,4)
// squaring each element of the list
val result = ListOfNumbers.map( (x:Int) => x * x )
println(result)
}
}
22
English     Русский Rules