我正在编写自己的脚本语言,需要以某种方式处理值类型。
我需要在我的脚本中定义一个变量值,如下面的片段
#Var #Name="Alpha" #Class="Float" #Value=1.0
#Var #Name="Beta" #Class="Int" #Value=1
#Var #Name="Delta" #Class="Vector2" #Value=(1.0,2.0)
#Var #Name="Echo" #Class="String" #Value="abcdefgh"
如您所见,每个#Var 都有一个#Class 定义期望的值类型。
问题是我不知道如何“轻松”地处理它,以便我以后可以以简单的方式管理这些值:
float fAlpha = GetVar("Alpha")->GetValue();
fAlpha = 150.0f;
GetVar("Alpha")->SetValue(fAlpha);
...
CVector2 vDelta = GetVar("Delta")->GetValue();
vDelta=CVector2(10.0,20.0);
GetVar("Delta")->SetValue(vDelta)
我可以一直检查#Var #Class,但我正在寻找更清晰/OO的东西。
if(GetVar("Alpha")->GetClass() == "Float")
{
float fAlpha = GetVar("Alpha")->GetValue();
}
有人可以说明您如何处理这个问题吗?
谢谢。