expr

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package expr 实现 UEL 兼容的表达式子集。 支持变量、属性、下标、算术、比较、逻辑、三元与内置函数。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Eval

func Eval(source string, vars map[string]any) (any, error)

Eval 编译并求值表达式。 @param source 表达式文本 @param vars 变量表 @return 结果 @return 错误

func EvalBool

func EvalBool(source string, vars map[string]any) (bool, error)

EvalBool 编译求值并转换为布尔值。 @param source 表达式文本 @param vars 变量表 @return 布尔结果 @return 错误

func EvalString

func EvalString(source string, vars map[string]any) (string, error)

EvalString 编译求值并转换为字符串。 @param source 表达式文本 @param vars 变量表 @return 字符串结果 @return 错误

func ToBool

func ToBool(value any) (bool, error)

ToBool 将任意值转换为布尔值。 @param value 值 @return 布尔值 @return 错误

func ToString

func ToString(value any) string

ToString 将任意值转换为字符串。 @param value 值 @return 字符串

Types

type Env

type Env struct {
	Vars      map[string]any      // 变量表
	Functions map[string]Function // 函数表
}

Env 是表达式求值环境。

type Expression

type Expression struct {
	// contains filtered or unexported fields
}

Expression 是编译后的表达式。

func Compile

func Compile(source string) (*Expression, error)

Compile 编译表达式。 @param source 表达式文本,可带 ${} 或 #{} 定界符 @return 编译结果 @return 编译错误

func CompileExpression

func CompileExpression(source string) (*Expression, error)

CompileExpression 编译表达式,不带定界符时也按表达式解析。 用于 BPMN 条件表达式等允许裸表达式的场景。 @param source 表达式文本 @return 编译结果 @return 编译错误

func (*Expression) Eval

func (e *Expression) Eval(ctx context.Context, env *Env) (any, error)

Eval 在环境中求值。 @param ctx 上下文,用于取消长表达式 @param env 求值环境 @return 结果 @return 错误

func (*Expression) Source

func (e *Expression) Source() string

Source 返回原始表达式文本。 @return 表达式文本

type Function

type Function func(args ...any) (any, error)

Function 是表达式函数。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL