Documentation
¶
Overview ¶
Package Expression provides methods for working with Expression object instances.
Index ¶
- type Advanced
- type Any
- type Instance
- func (self Instance) AsExpression() Instance
- func (self Instance) AsObject() [1]gd.Object
- func (self Instance) AsRefCounted() [1]gd.RefCounted
- func (self Instance) Execute() any
- func (self Instance) GetErrorText() string
- func (self Instance) HasExecuteFailed() bool
- func (self Instance) Parse(expression string) error
- func (self *Instance) UnsafePointer() unsafe.Pointer
- func (self Instance) Virtual(name string) reflect.Value
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Advanced ¶
type Advanced = class
Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.
type Instance ¶
type Instance [1]gdclass.Expression
An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call. An example expression text using the built-in math functions could be [code]sqrt(pow(3, 2) + pow(4, 2))[/code]. In the following example we use a [LineEdit] node to write our expression and show the result. [codeblocks] [gdscript] 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 error != OK: print(expression.get_error_text()) return var result = expression.execute() if not expression.has_execute_failed(): $LineEdit.text = str(result)
[/gdscript] [csharp] private Expression _expression = new Expression();
public override void _Ready()
{ GetNode<LineEdit>("LineEdit").TextSubmitted += OnTextEntered; }
private void OnTextEntered(string command)
{ Error error = _expression.Parse(command); if (error != Error.Ok) { GD.Print(_expression.GetErrorText()); return; } Variant result = _expression.Execute(); if (!_expression.HasExecuteFailed()) { GetNode<LineEdit>("LineEdit").Text = result.ToString(); } }
[/csharp] [/codeblocks]
var Nil Instance
Nil is a nil/null instance of the class. Equivalent to the zero value.
func (Instance) AsExpression ¶
func (Instance) AsRefCounted ¶
func (self Instance) AsRefCounted() [1]gd.RefCounted
func (Instance) Execute ¶
Executes the expression that was previously parsed by [method parse] and returns the result. Before you use the returned object, you should check if the method failed by calling [method has_execute_failed]. If you defined input variables in [method parse], you can specify their values in the inputs array, in the same order.
func (Instance) GetErrorText ¶
Returns the error text if [method parse] or [method execute] has failed.
func (Instance) HasExecuteFailed ¶
Returns [code]true[/code] if [method execute] has failed.
func (Instance) Parse ¶
Parses the expression and returns an [enum Error] code. You can optionally specify names of variables that may appear in the expression with [param input_names], so that you can bind them when it gets executed.