Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
p0dyakov committed Oct 26, 2023
1 parent c539c33 commit d186525
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,27 @@
### Sound Null Safety
`Sound Null Safety` – это дополнение к языку Dart, которое усиливает систему типов, отделяя типы, допускающие значение `Null`, от типов, не допускающих значения `Null`. Это позволяет разработчикам предотвращать ошибки, связанные с `Null`.

---
<!-- TOC --><a name="--5"></a>
### Система типов
<p align="left" width="100%">
<img src="https://github.com/p0dyakov/flutter_interview/assets/80569772/93afb575-ee46-46d0-9717-ea6894e6f1b3" width="30%"/>
</p>
С появлением null safety в Dart, иерархия классов и интерфейсов была изменена для учета новых требований по безопасности типов. Вот основные изменения:

1. **Добавление non-nullable типов**:
- Non-nullable типы обозначают, что значение не может быть null.
- Все существующие типы были разделены на non-nullable и nullable версии. Например, `int` стал `int` (non-nullable) и `int?` (nullable)

2. **Новый корень иерархии - "Object?"**:
- Введен новый корневой класс `Object?`, который может быть null. В предыдущих версиях Dart, корневым классом был `Object`

3. **Изменения в иерархии ошибок**:
- Введен новый класс `NullThrownError`, который представляет собой ошибку, возникающую при попытке выбросить `null` исключение

4. **`late` и `required`**:
- Введены ключевые слова `late` и `required` для обозначения переменных, которые могут быть инициализированы позднее и обязательно должны быть проинициализированы при объявлении, соответственно.

---
<!-- TOC --><a name="late"></a>
### Late
Expand Down Expand Up @@ -306,25 +327,6 @@
- Классы, миксины, enum-ы - `UpperCamelCase`
- Файлы - `snake_case`

---
<!-- TOC --><a name="--5"></a>
### Система типов
![image](https://github.com/p0dyakov/flutter_interview/assets/80569772/93afb575-ee46-46d0-9717-ea6894e6f1b3)
С появлением null safety в Dart, иерархия классов и интерфейсов была изменена для учета новых требований по безопасности типов. Вот основные изменения:

1. **Добавление non-nullable типов**:
- Non-nullable типы обозначают, что значение не может быть null.
- Все существующие типы были разделены на non-nullable и nullable версии. Например, `int` стал `int` (non-nullable) и `int?` (nullable)

2. **Новый корень иерархии - "Object?"**:
- Введен новый корневой класс `Object?`, который может быть null. В предыдущих версиях Dart, корневым классом был `Object`

3. **Изменения в иерархии ошибок**:
- Введен новый класс `NullThrownError`, который представляет собой ошибку, возникающую при попытке выбросить `null` исключение

4. **`late` и `required`**:
- Введены ключевые слова `late` и `required` для обозначения переменных, которые могут быть инициализированы позднее и обязательно должны быть проинициализированы при объявлении, соответственно.

---
<!-- TOC --><a name="never"></a>
### Never
Expand Down

0 comments on commit d186525

Please sign in to comment.