File tree 25 files changed +157
-0
lines changed
25 files changed +157
-0
lines changed Original file line number Diff line number Diff line change
1
+ .idea /
2
+ target /
3
+ project /target /
4
+ project /project /target /
Original file line number Diff line number Diff line change
1
+ name := " LearnScala"
2
+
3
+ version := " 1.0"
4
+
5
+ scalaVersion := " 2.11.6"
6
+
Original file line number Diff line number Diff line change
1
+ sbt.version = 0.13.8
Original file line number Diff line number Diff line change
1
+ logLevel := Level .Warn
Original file line number Diff line number Diff line change
1
+ object Александр_Подхалюзин {
2
+
3
+
4
+ def twitter = " Safela"
5
+ }
Original file line number Diff line number Diff line change
1
+ " Scala" match {
2
+ case " Модный и современный" => true
3
+ case " Cтатически типизированный" => true
4
+ case " Объектно ориентированный" => true
5
+ case " Функциональный" => true
6
+ case " Компилируется под JVM" => true
7
+ }
Original file line number Diff line number Diff line change
1
+ Map .empty +
2
+ (2001 -> " Первоначальный дизайн" ) +
3
+ (2003 -> " Первая версия" ) ++
4
+ (2004 to 2007 ).map(_ -> " Множество исследований" ) +
5
+ (2008 -> " Появление в промышленном программировании" ) ++
6
+ (2009 to 2014 ).map(_ -> " Быстро развился под современные нужды" ) +
7
+ (2015 -> " Reactive platform" )
Original file line number Diff line number Diff line change
1
+ import helper ._
2
+
3
+ " JVM languages"
4
+
5
+ (" Scala" vs " Java" ) {
6
+ " Более выразительный" +
7
+ " Меньше кода даже по сравнению с Java 8"
8
+ }
9
+
10
+ (" Scala" vs " Groovy" ) {
11
+ " Статически типизированный"
12
+ }
13
+
14
+ (" Scala" vs " Kotlin" ) {
15
+ " Уже много промышленной разработки"
16
+ }
Original file line number Diff line number Diff line change
1
+ // Hello, World!
2
+
3
+ object Main extends App {
4
+ println(" Hello, World!" )
5
+ }
6
+
7
+ Main .main(Array .empty)
Original file line number Diff line number Diff line change
1
+ // define method isPrime
2
+ def isPrime (n : Int ): Boolean = ???
3
+
4
+ // print all primes from 1 to 100
Original file line number Diff line number Diff line change
1
+ " В отличие от Java, в классах нету статики"
2
+ class A {
3
+ // todo: Конструктор?
4
+ }
5
+
6
+
7
+ " Статика отправляется в синглтон объекты"
8
+ object B {
9
+ // todo: Companion object?
10
+ }
11
+
12
+
13
+ " Аналог интерфейсов - trait"
14
+ trait C {
15
+ // todo: Конкретные методы?
16
+ }
Original file line number Diff line number Diff line change
1
+ " Через trait реализуется множественное наследование"
2
+ trait A {
3
+ def foo : Int
4
+ }
5
+ trait B extends A {
6
+ override def foo : Int = 1
7
+ }
8
+ trait C extends A {
9
+ override def foo : Int = 2
10
+ }
11
+
12
+ class D extends B with C
13
+
14
+ val d = new D
15
+
16
+ // todo: call foo
Original file line number Diff line number Diff line change
1
+ // Algebraic data types in Scala
2
+ " Две операции:"
3
+ " A & B - объединение типов, или умножение"
4
+ // todo: user example
5
+ " A | B - Выбор из типов, или сложение"
6
+ // todo: user/anonymous example
7
+
8
+ " List[A] = Nil | Cons(A, List[A])"
9
+ // todo: list example
Original file line number Diff line number Diff line change
1
+ " Pattern matching"
Original file line number Diff line number Diff line change
1
+ import helper ._
2
+
3
+ В Scala нет полей!!!
4
+
5
+ " Все поля это свойства, для которых комплиятор созадает backing field"
6
+
7
+ class A {
8
+ // todo: val/var
9
+ }
10
+
11
+ class B (/* todo: val/var*/ )
12
+
13
+ case class C () // todo: implicit val
Original file line number Diff line number Diff line change
1
+ " Generics in Scala"
2
+
3
+ " Scala generics" compareTo " Java generics"
4
+ /** 1. В синтаксисе используем [] вместо <>.
5
+ * 2. Нету raw types.
6
+ * 3. Можно использовать примитивы.
7
+ * 4. Можно накладывать ограничения сверху и снизу.
8
+ * 5. Есть понятие вариантности.
9
+ */
10
+ // todo: examples?
Original file line number Diff line number Diff line change
1
+ " Анонимные функции"
2
+
3
+ // Функциональный тип
4
+ // todo:
5
+
6
+ // С типом параметра:
7
+ // todo:
8
+
9
+ // Сокращения "_"
10
+ // todo:
Original file line number Diff line number Diff line change
1
+ " Scala collections"
Original file line number Diff line number Diff line change
1
+ " if/while/do statements"
2
+ // todo: break? flag + breakable
Original file line number Diff line number Diff line change
1
+ " Tail recursion"
Original file line number Diff line number Diff line change
1
+ " For expression"
Original file line number Diff line number Diff line change
1
+ " Implicit classes"
Original file line number Diff line number Diff line change
1
+ " Implicit parameters and type classes"
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @author Alefas
3
+ * @since 31/03/15.
4
+ */
5
+ object helper {
6
+ implicit class StringActivity (s : String ) {
7
+ def vs (other : String )(body : => Unit ) = new {
8
+ def apply (x : Unit ): Unit = {}
9
+ }
10
+ }
11
+
12
+ val нет : Any = null
13
+ val !!! : Any = null
14
+ object В {
15
+ def Scala (o : Any ) = new {def полей (x : Any ): Unit = {}}
16
+ }
17
+ }
You can’t perform that action at this time.
0 commit comments