Alias using symbol object
ID: 56
See: CreateAlias
using uCalcSoftware;
var uc = new uCalc();
var MyVar = uc.DefineVariable("MyVar = 123");
var MyAlias = uc.CreateAlias("MyAlias", MyVar);
Console.WriteLine(uc.Eval("MyAlias")); // Contains same value as MyVar
uc.Eval("MyAlias = 456"); // Same as changing MyVar
Console.WriteLine(uc.EvalStr("MyVar")); // MyVar reflects change made in MyAlias
Console.WriteLine("");
// This section below shows how you can have Alias distinguish
// between different variables with the same name
uc.DefineFunction("MyFunc() = MyVar + 1");
// MyVar defined below is a new variable sharing the same name
// MyFunc() will still use the value of the original MyVar
var MyVarAlt = uc.DefineVariable("MyVar = 100");
// The function below uses the new MyVar variable
uc.DefineFunction("MyFunc2() = MyVar + 1");
Console.WriteLine(uc.Eval("MyFunc()"));
Console.WriteLine(uc.Eval("MyFunc2()"));
Console.WriteLine("");
uc.CreateAlias("MyAliasAlt", MyVarAlt);
uc.Eval("MyAlias = 200"); // Changes MyVar used in MyFunc()
uc.Eval("MyAliasAlt = 300"); // Changes MyVar used in MyFunc2()
Console.WriteLine(uc.Eval("MyFunc()"));
Console.WriteLine(uc.Eval("MyFunc2()"));
123
456
457
101
201
301 using uCalcSoftware; var uc = new uCalc(); var MyVar = uc.DefineVariable("MyVar = 123"); var MyAlias = uc.CreateAlias("MyAlias", MyVar); Console.WriteLine(uc.Eval("MyAlias")); // Contains same value as MyVar uc.Eval("MyAlias = 456"); // Same as changing MyVar Console.WriteLine(uc.EvalStr("MyVar")); // MyVar reflects change made in MyAlias Console.WriteLine(""); // This section below shows how you can have Alias distinguish // between different variables with the same name uc.DefineFunction("MyFunc() = MyVar + 1"); // MyVar defined below is a new variable sharing the same name // MyFunc() will still use the value of the original MyVar var MyVarAlt = uc.DefineVariable("MyVar = 100"); // The function below uses the new MyVar variable uc.DefineFunction("MyFunc2() = MyVar + 1"); Console.WriteLine(uc.Eval("MyFunc()")); Console.WriteLine(uc.Eval("MyFunc2()")); Console.WriteLine(""); uc.CreateAlias("MyAliasAlt", MyVarAlt); uc.Eval("MyAlias = 200"); // Changes MyVar used in MyFunc() uc.Eval("MyAliasAlt = 300"); // Changes MyVar used in MyFunc2() Console.WriteLine(uc.Eval("MyFunc()")); Console.WriteLine(uc.Eval("MyFunc2()"));
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
int main() {
uCalc uc;
auto MyVar = uc.DefineVariable("MyVar = 123");
auto MyAlias = uc.CreateAlias("MyAlias", MyVar);
cout << uc.Eval("MyAlias") << endl; // Contains same value as MyVar
uc.Eval("MyAlias = 456"); // Same as changing MyVar
cout << uc.EvalStr("MyVar") << endl; // MyVar reflects change made in MyAlias
cout << "" << endl;
// This section below shows how you can have Alias distinguish
// between different variables with the same name
uc.DefineFunction("MyFunc() = MyVar + 1");
// MyVar defined below is a new variable sharing the same name
// MyFunc() will still use the value of the original MyVar
auto MyVarAlt = uc.DefineVariable("MyVar = 100");
// The function below uses the new MyVar variable
uc.DefineFunction("MyFunc2() = MyVar + 1");
cout << uc.Eval("MyFunc()") << endl;
cout << uc.Eval("MyFunc2()") << endl;
cout << "" << endl;
uc.CreateAlias("MyAliasAlt", MyVarAlt);
uc.Eval("MyAlias = 200"); // Changes MyVar used in MyFunc()
uc.Eval("MyAliasAlt = 300"); // Changes MyVar used in MyFunc2()
cout << uc.Eval("MyFunc()") << endl;
cout << uc.Eval("MyFunc2()") << endl;
}
123
456
457
101
201
301 #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; auto MyVar = uc.DefineVariable("MyVar = 123"); auto MyAlias = uc.CreateAlias("MyAlias", MyVar); cout << uc.Eval("MyAlias") << endl; // Contains same value as MyVar uc.Eval("MyAlias = 456"); // Same as changing MyVar cout << uc.EvalStr("MyVar") << endl; // MyVar reflects change made in MyAlias cout << "" << endl; // This section below shows how you can have Alias distinguish // between different variables with the same name uc.DefineFunction("MyFunc() = MyVar + 1"); // MyVar defined below is a new variable sharing the same name // MyFunc() will still use the value of the original MyVar auto MyVarAlt = uc.DefineVariable("MyVar = 100"); // The function below uses the new MyVar variable uc.DefineFunction("MyFunc2() = MyVar + 1"); cout << uc.Eval("MyFunc()") << endl; cout << uc.Eval("MyFunc2()") << endl; cout << "" << endl; uc.CreateAlias("MyAliasAlt", MyVarAlt); uc.Eval("MyAlias = 200"); // Changes MyVar used in MyFunc() uc.Eval("MyAliasAlt = 300"); // Changes MyVar used in MyFunc2() cout << uc.Eval("MyFunc()") << endl; cout << uc.Eval("MyFunc2()") << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
Dim MyVar = uc.DefineVariable("MyVar = 123")
Dim MyAlias = uc.CreateAlias("MyAlias", MyVar)
Console.WriteLine(uc.Eval("MyAlias")) '// Contains same value as MyVar
uc.Eval("MyAlias = 456") '// Same as changing MyVar
Console.WriteLine(uc.EvalStr("MyVar")) '// MyVar reflects change made in MyAlias
Console.WriteLine("")
'// This section below shows how you can have Alias distinguish
'// between different variables with the same name
uc.DefineFunction("MyFunc() = MyVar + 1")
'// MyVar defined below is a new variable sharing the same name
'// MyFunc() will still use the value of the original MyVar
Dim MyVarAlt = uc.DefineVariable("MyVar = 100")
'// The function below uses the new MyVar variable
uc.DefineFunction("MyFunc2() = MyVar + 1")
Console.WriteLine(uc.Eval("MyFunc()"))
Console.WriteLine(uc.Eval("MyFunc2()"))
Console.WriteLine("")
uc.CreateAlias("MyAliasAlt", MyVarAlt)
uc.Eval("MyAlias = 200") '// Changes MyVar used in MyFunc()
uc.Eval("MyAliasAlt = 300") '// Changes MyVar used in MyFunc2()
Console.WriteLine(uc.Eval("MyFunc()"))
Console.WriteLine(uc.Eval("MyFunc2()"))
End Sub
End Module
123
456
457
101
201
301 Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() Dim MyVar = uc.DefineVariable("MyVar = 123") Dim MyAlias = uc.CreateAlias("MyAlias", MyVar) Console.WriteLine(uc.Eval("MyAlias")) '// Contains same value as MyVar uc.Eval("MyAlias = 456") '// Same as changing MyVar Console.WriteLine(uc.EvalStr("MyVar")) '// MyVar reflects change made in MyAlias Console.WriteLine("") '// This section below shows how you can have Alias distinguish '// between different variables with the same name uc.DefineFunction("MyFunc() = MyVar + 1") '// MyVar defined below is a new variable sharing the same name '// MyFunc() will still use the value of the original MyVar Dim MyVarAlt = uc.DefineVariable("MyVar = 100") '// The function below uses the new MyVar variable uc.DefineFunction("MyFunc2() = MyVar + 1") Console.WriteLine(uc.Eval("MyFunc()")) Console.WriteLine(uc.Eval("MyFunc2()")) Console.WriteLine("") uc.CreateAlias("MyAliasAlt", MyVarAlt) uc.Eval("MyAlias = 200") '// Changes MyVar used in MyFunc() uc.Eval("MyAliasAlt = 300") '// Changes MyVar used in MyFunc2() Console.WriteLine(uc.Eval("MyFunc()")) Console.WriteLine(uc.Eval("MyFunc2()")) End Sub End Module