【Godot】文字列を式として評価する方法

この記事では文字列表現を式として評価する(演算結果を求める)方法について書きます。

文字列を式として評価する方法

Expressionクラスの基本的な使い方

Godot Engine (GDScript) には、”Expression” というモジュールが用意されているのでそれを使うと文字列を式として評価することができます。

var expression = Expression.new()
# 評価したい文字列表現を渡す
expression.parse("(1+2) * 5")
# 式として評価する
var result = expression.execute()

# "15" と出力される
print(result)

変数を使う場合

式に変数を渡したい場合は以下のように記述します。

var expression = Expression.new()
# "x" は変数としたい
expression.parse("(1+2) * x", ["x"])
# "x" = 10 で評価する
var result = expression.execute([10])

# "30" と出力される
print(result)

複数の変数を使用したい場合

複数の変数を使用したい場合は、リストに複数渡すことで実現できます。

var expression = Expression.new()
# "x, y" を変数としたい
expression.parse("(1+2) * x + y", ["x", "y"])
# "x" = 10, "y" = 3 で評価する
var result = expression.execute([10, 3])

# "33" と出力される
print(result)

電卓の実装例

Expressionを使用した電卓の実装例のプロジェクトを添付しておきます。

参考