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) -->
|
||
|