Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
p0dyakov committed Feb 28, 2024
1 parent 9a7eb5a commit bfea6e0
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@
---
<!-- TOC --><a name="never"></a>
### Never
`Never` - это тип, означающий, что ни один тип не разрешен и `Never` сам по себе не может быть создан.
`Never` - это тип, означающий, что ни один тип не разрешен и `Never` сам по себе не может быть создан. Используется как возвращаемый тип при гарантированной ошибке.

---
<!-- TOC --><a name="covariant"></a>
Expand All @@ -337,8 +337,9 @@
---
<!-- TOC --><a name="-3"></a>
### Аннотации
`Аннотации` — это синтаксические метаданные, которые могут быть добавлены к коду. Другими словами, это возможность добавить дополнительную информацию к любому компоненту кода, например, к классу или методу. Аннотации всегда начинаются с символа `@` (`@override`, `@required`). Любой класс может служить аннотацией, если в нем определен const конструктор
`Аннотации` — это синтаксические метаданные, которые могут быть добавлены к коду. Другими словами, это возможность добавить дополнительную информацию к любому компоненту кода, например, к классу или методу. Аннотации всегда начинаются с символа `@` (`@override`, `@required`). Любой класс может служить аннотацией, если в нем определен const конструктор.

---
<!-- TOC --><a name="future"></a>
### Future
`Future` - это обёртка над результатом выполнения асинхронной операции. Код Future НЕ выполняется параллельно, а выполняется в последовательности, определяемой Event Loop.
Expand Down Expand Up @@ -394,6 +395,7 @@
- *sync** - это синхронный генератор. Возвращает `Iterable`
- *async** - это aсинхронный генератор. Возвращает `Stream`

---
<!-- TOC --><a name="-dart-flutter"></a>
### Многопоточность в Dart и Flutter
`Dart` — однопоточный язык программирования. Он исполняет одновременно одну инструкцию. Но при этом мы можем запустить код в отдельном поток с помощью `Isolate`
Expand Down Expand Up @@ -455,7 +457,7 @@
`InheritedWidget` — это виджет, который предоставляет своим потомкам возможность взаимодействовать с данными, хранящимися в нём. Решает проблему с передачей данных через конструкторы. Может уведомлять виджетов внизу по дереву об изменениях в собственных данных, тем самым провоцируя их перерисовку.
Для получения Inherited виджета необходимо вызвать `context.dependOnInheritedWidgetOfExactType<T extends InheritedWidget>()` в `didChangeDependencies()`

*Сложность у операции получения InheritedWidget - O(1). Такая скорость достигается за счёт того, что Inherited виджеты хранятся в виде мапы в `Element`*
*Сложность у операции получения InheritedWidget - O(1). Такая скорость достигается за счёт того, что Inherited виджеты хранятся в виде хэш-таблицы в `Element`*

---
<!-- TOC --><a name="-4"></a>
Expand Down

0 comments on commit bfea6e0

Please sign in to comment.