Skip to content

Commit 8b60216

Browse files
committed
Add types-introduction.md in russian
1 parent 17a1915 commit 8b60216

File tree

3 files changed

+70
-2
lines changed

3 files changed

+70
-2
lines changed

_overviews/scala3-book/types-introduction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Types and the Type System
33
type: chapter
44
description: This chapter provides an introduction to Scala 3 types and the type system.
5-
languages: [zh-cn]
5+
languages: [ru, zh-cn]
66
num: 47
77
previous-page: fp-summary
88
next-page: types-inferred

_ru/scala3/book/fp-summary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: Этот раздел суммирует предыдущие ра
99
language: ru
1010
num: 46
1111
previous-page: fp-functional-error-handling
12-
next-page:
12+
next-page: types-introduction
1313
---
1414

1515

_ru/scala3/book/types-introduction.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
layout: multipage-overview
3+
title: Типы и система типов
4+
scala3: true
5+
partof: scala3-book
6+
overview-name: "Scala 3 — Book"
7+
type: section
8+
description: В этой главе представлено введение в типы и систему типов Scala 3.
9+
language: ru
10+
num: 47
11+
previous-page: fp-summary
12+
next-page:
13+
---
14+
15+
Scala — уникальный язык, поскольку он статически типизирован, но часто кажется гибким и динамичным.
16+
Например, благодаря выводу типов можно писать код без явного указания типов переменных:
17+
18+
{% tabs hi %}
19+
{% tab 'Scala 2 и 3' %}
20+
21+
```scala
22+
val a = 1
23+
val b = 2.0
24+
val c = "Hi!"
25+
```
26+
27+
{% endtab %}
28+
{% endtabs %}
29+
30+
Это делает код динамически типизированным.
31+
А благодаря новым функциям в Scala 3, таким как [объединение типов][union-types],
32+
также можно писать код, подобный следующему,
33+
который кратко выражает, какие значения ожидаются в качестве аргументов и какие типы возвращаются:
34+
35+
{% tabs union-example %}
36+
{% tab 'Только в Scala 3' %}
37+
38+
```scala
39+
def isTruthy(a: Boolean | Int | String): Boolean = ???
40+
def dogCatOrWhatever(): Dog | Plant | Car | Sun = ???
41+
```
42+
43+
{% endtab %}
44+
{% endtabs %}
45+
46+
Как видно из примера, при использовании объединения типы необязательно должны иметь общую иерархию,
47+
и их по-прежнему можно принимать в качестве аргументов или возвращать из метода.
48+
49+
При разработке приложений такие функции, как вывод типов,
50+
используются каждый день, а generics - каждую неделю.
51+
При чтении Scaladoc для классов и методов, также необходимо иметь некоторое представление о _ковариантности_.
52+
Использование типов может быть относительно простым,
53+
а также обеспечивает большую выразительность, гибкость и контроль для разработчиков библиотек.
54+
55+
## Преимущества типов
56+
57+
Языки программирования со статической типизацией предлагают ряд преимуществ, в том числе:
58+
59+
- помощь IDE в обеспечении надежной поддержки
60+
- устранение многих классов потенциальных ошибок во время компиляции
61+
- помощь в рефакторинге
62+
- предоставление надежной документации, которая не может быть нерелевантной, поскольку проверена на тип
63+
64+
## Знакомство с особенностями системы типов в Scala
65+
66+
Учитывая это краткое введение, в следующих разделах представлен обзор особенностей системы типов в Scala.
67+
68+
[union-types]: {% link _overviews/scala3-book/types-union.md %}

0 commit comments

Comments
 (0)