跳到主要内容

Expression

继承

Reference

简要描述

用来存储并且可以执行表达式的类.

描述

这个表达式可以由任何的算术表达式、 内置的函数调用、 一个实例的方法调用、 或者一个内置类型结构调用构成。

一个使用内置数学函数表达式文本的例子可以这样: sqrt(pow(3,2) + pow(4,2)).

在下面的例子里我们使用了一个 LineEdit 节点来写我们的表达式并显示结果.

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)

方法

返回值类型方法名称
Variantexecute(inputs: Array = [], base_instance: Object = null, show_error: bool = true)
Stringget_error_text() const
boolhas_execute_failed() const
intparse(expression: String, input_names: PoolStringArray = PoolStringArray( ))

方法说明

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

执行之前由方法 parse 解析的表达式并返回结果. 在使用返回的对象之前, 您应该通过调用方法 has_execute_failed来检查调用是否失败.

如果你在方法 parse 中定义了输入变量, 您可以在输入数组中以相同的顺序指定它们的值.


  • get_error_text get_error_text() const

返回错误信息字符串如果方法 parse 调用失败.


  • has_execute_failed has_execute_failed() const

返回 true 如果方法 execute 失败.


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

解析表达式并返回一个 Error 代码.

您可以选择指定可能出现在 input_names 表达式中的变量名, 以便在执行时绑定它们.