Expression

Inherits: Reference < Object

Una clase que almacena una expresión que puedes ejecutar.

Descripción

Se puede hacer una expresión de cualquier operación aritmética, llamada de función matemática incorporada, llamada de método de una instancia pasada o llamada de construcción de tipo incorporado.

Un ejemplo de expresión de texto utilizando las funciones matemáticas incorporadas podría ser sqrt(pow(3,2) + pow(4,2)).

En el siguiente ejemplo usamos un nodo LineEdit para escribir nuestra expresión y mostrar el resultado.

onready var expression = Expression.new()

func _ready():
    $LineEdit.connect("text_entered", self, "_on_text_entered")

func _on_text_entered(command):
    var error = expression.parse(command, [])
    if error != OK:
        print(expression.get_error_text())
        return
    var result = expression.execute([], null, true)
    if not expression.has_execute_failed():
        $LineEdit.text = str(result)

Métodos

Variant

execute ( Array inputs=[ ], Object base_instance=null, bool show_error=true )

String

get_error_text ( ) const

bool

has_execute_failed ( ) const

Error

parse ( String expression, PoolStringArray input_names=PoolStringArray( ) )

Descripciones de Métodos

Ejecuta la expresión que fue previamente analizada por parse y devuelve el resultado. Antes de usar el objeto devuelto, debería comprobar si el método falló llamando a has_execute_failed.

Si ha definido las variables de entrada en parse, puede especificar sus valores en el array de entradas, en el mismo orden.


  • String get_error_text ( ) const

Devuelve el texto de error si el parse ha fallado.


  • bool has_execute_failed ( ) const

Devuelve true si execute ha fallado.


Analiza la expresión y devuelve un código Error.

Opcionalmente puedes especificar los nombres de las variables que pueden aparecer en la expresión con input_names, para que puedas enlazarlas cuando se ejecute.