Eliminar código redundante combinando acciones de estado
Puede combinar las acciones entry
, during
y exit
que ejecutan las mismas tareas en un estado.
Al combinar acciones de estado que ejecutan las mismas tareas, eliminará el código redundante. Por ejemplo:
Acciones separadas | Acciones combinadas equivalentes |
---|---|
entry: y = 0; y=y+1; during: y=y+1; |
entry: y = 0; entry, during: y=y+1; |
en: fcn1(); fcn2(); du: fcn1(); ex: fcn1(); |
en, du, ex: fcn1(); en: fcn2(); |
La combinación de acciones de estado de esta manera produce el mismo comportamiento de ejecución del gráfico (semántica) y genera el mismo código que las acciones equivalentes por separado.
Cómo combinar acciones de estado
Combine un conjunto de acciones entry
, during
o exit
que ejecuten las mismas tareas como una lista de datos separados por comas en un estado. Esta es la sintaxis:
entry, during, exit: task1; task2;...taskN;
También puede utilizar las abreviaturas equivalentes:
en, du, ex: task1; task2;...taskN;
Combinaciones válidas
Puede utilizar cualquier combinación de las tres acciones. Por ejemplo, las siguientes combinaciones son válidas:
en
,du
:en
,ex
:du
,ex
:en
,du
,ex
:
Puede combinar acciones en cualquier orden en la lista de datos separados por comas. Por ejemplo, en, du:
tiene el mismo resultado que du, en:
.
Combinaciones no válidas
No puede combinar dos o más acciones del mismo tipo. Por ejemplo, las siguientes combinaciones no son válidas:
en
,en
:ex
,en
,ex
:du
,du
,ex
:
Si combina varias acciones del mismo tipo, recibirá un aviso de que el gráfico ejecuta la acción solo una vez.
Orden de ejecución de acciones combinadas
Los estados ejecutan acciones combinadas en el mismo orden en el que ejecutan acciones separadas:
En primer lugar, las acciones
Entry
, de arriba a abajo en el orden en el que aparecen en el estadoEn segundo lugar, las acciones
During
, de arriba a abajoPor último, las acciones
Exit
, de arriba a abajo
El orden en el que se combinan las acciones no influye en el comportamiento de la ejecución del estado. Por ejemplo:
Acciones combinadas | Orden de ejecución |
---|---|
|
|
|
|
|
|
|
|
Reglas para combinar acciones de estado
No combine varias acciones del mismo tipo.
No cree datos, eventos o mensajes que tengan el mismo nombre que las palabras clave de las acciones:
entry
,en
,during
,du
,exit
yex
.