-
Notifications
You must be signed in to change notification settings - Fork 0
API Host CompiledBlock
可直接调用的已编译语句块
Directly invokable compiled statement block
Overview
CompiledBlock 是 AuroraEngine.CompileBlock 的结果。它不进入模块系统、不支持 import/include,也不参与热更新;适合公式、过滤器和小型规则。
CompiledBlockis produced byAuroraEngine.CompileBlock. It does not enter the module system, does not support import/include, and does not participate in hot patching; it suits formulas, filters, and small rules.
Parameters:
- 可传
ScriptDatum[]或ScriptObject[];部分重载还接收ScriptDomain或ScriptContext。Accepts
ScriptDatum[]orScriptObject[]; some overloads also acceptScriptDomainorScriptContext.
Returns
ScriptDatum。
ScriptDatum.
using var block = engine.CompileBlock("return value * 2;", ["value"]);
var result = block.Invoke(ScriptDatum.FromNumber(21));Parameters:
-
domain
要使用的 Domain。Domain to use.
-
arguments
位置实参。Positional arguments.
Returns
ScriptDatum。
ScriptDatum.
using var domain = engine.CreateDomain();
using var block = engine.CompileBlock("return value + 1;", ["value"]);
var result = block.Invoke(domain, ScriptDatum.FromNumber(41));Parameters:
-
context
显式脚本上下文。Explicit script context.
-
arguments
ReadOnlySpan<ScriptDatum>参数。ReadOnlySpan<ScriptDatum>arguments.
Returns
ScriptDatum。
ScriptDatum.
using var domain = engine.CreateDomain();
using var block = engine.CompileBlock("return value;", ["value"]);
var values = new[] { ScriptDatum.FromNumber(42) };
var result = block.Invoke(new ScriptContext(domain), values);Parameters:
- 无。
None.
Returns
无。
None.
用途
确定性释放编译期间注册的动态 delegate。
Deterministically releases dynamically registered delegates.
using (var block = engine.CompileBlock("return 42;", Array.Empty<string>()))
{
var result = block.Invoke();
}AuroraScript.JIT 4.0.0 · Documentation Home · Repository · MIT License