Expression
Успадковує: RefCounted < Object
Клас, який зберігає вираз, ви можете виконати.
Опис
Вираз може складатися з будь-якої арифметичної операції, виклику вбудованої математичної функції, виклику методу переданого екземпляра або виклику вбудованої конструкції типу.
Прикладом тексту виразу з використанням вбудованих математичних функцій може бути sqrt(pow(3, 2) + pow(4, 2)).
У наступному прикладі ми використовуємо вузол LineEdit, щоб написати наш вираз і показати результат.
var expression = Expression.new()
func _ready():
$LineEdit.text_submitted.connect(self._on_text_submitted)
func _on_text_submitted(command):
var error = expression.parse(command)
if помилка != OK:
print(expression.get_error_text())
return
var result = expression.execute()
if no expression.has_execute_failed():
$LineEdit.text = str(result)
private Expression _expression = new Expression();
public override void _Ready()
{
GetNode<LineEdit>("LineEdit").TextSubmitted += OnTextEntered;
}
private void OnTextEntered(string command)
{
Erorr error = _expression.Parse(command);
if (error != Erorr. Ok)
{
GD.Print(_expression.GetErrorText());
return;
}
Variant result = _expression.Execute();
if (!_expression.HasExecuteFailed())
{
GetNode<LineEdit>("LineEdit").Text = result.ToString();
}
}
Посібники
Методи
execute(inputs: Array = [], base_instance: Object = null, show_error: bool = true, const_calls_only: bool = false) |
|
get_error_text() const |
|
has_execute_failed() const |
|
parse(expression: String, input_names: PackedStringArray = PackedStringArray()) |
Описи методів
Variant execute(inputs: Array = [], base_instance: Object = null, show_error: bool = true, const_calls_only: bool = false) 🔗
Виконує вираз, який раніше був проаналізований методом parse(), та повертає результат. Перш ніж використовувати повернутий об'єкт, слід перевірити, чи не виникла помилка методу, викликавши його has_execute_failed().
Якщо ви визначили вхідні змінні в parse(), ви можете вказати їхні значення в масиві inputs у тому ж порядку.
String get_error_text() const 🔗
Повертає текст помилки, якщо parse() або execute() не вдалося.
bool has_execute_failed() const 🔗
Повертає true, якщо execute() не вдалося.
Error parse(expression: String, input_names: PackedStringArray = PackedStringArray()) 🔗
Розбирає вираз і повертає код Error.
За потреби можна вказати імена змінних, які можуть з'являтися у виразі, за допомогою input_names. щоб ви могли зв'язати їх під час виконання.