41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- side effects
|
|||
|
tags:
|
|||
|
- maturity/🌱
|
|||
|
date: 2024-11-08
|
|||
|
---
|
|||
|
Побочные действия в коде — это любые операции, которые изменяют состояние за пределами самой функции. Это может быть:
|
|||
|
- изменение внешних переменных;
|
|||
|
- модификация содержимого коллекций, находящихся вне функции;
|
|||
|
- операции с файловой системой или базами данных;
|
|||
|
- взаимодействие с сетью и другие внешние взаимодействия.
|
|||
|
|
|||
|
Такие действия могут сделать код менее предсказуемым и сложным в отладке, так как результат работы функции может зависеть от внешнего состояния, которое не всегда явно.
|
|||
|
## Примеры побочных действий в Java
|
|||
|
### Изменение внешней коллекции с использованием forEach
|
|||
|
|
|||
|
```java
|
|||
|
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
|
|||
|
List<String> upperCaseNames = new ArrayList<>();
|
|||
|
|
|||
|
// Побочный эффект: добавление элементов во внешнюю коллекцию
|
|||
|
names.forEach(name -> upperCaseNames.add(name.toUpperCase()));
|
|||
|
```
|
|||
|
|
|||
|
В этом примере метод forEach используется для преобразования имен в верхний регистр и добавления их в `upperCaseNames`. Это создает зависимость от внешней переменной `upperCaseNames`, что является побочным действием.
|
|||
|
|
|||
|
***
|
|||
|
## Мета информация
|
|||
|
**Область**:: [[../meta/zero/00 Разработка|00 Разработка]]
|
|||
|
**Родитель**::
|
|||
|
**Источник**::
|
|||
|
**Создана**:: [[2024-11-08]]
|
|||
|
**Автор**::
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
|