A practical, generic `Print` function that can accept any number of arguments of any type and display them in a formatted string.
ID: 1237
using uCalcSoftware;
var uc = new uCalc();
static void PrintGeneric(uCalc.Callback cb) {
string output = "";
var i = 0;
for ( i = 1; i <= cb.ArgCount(); i++) {
// Get the item and retrieve its value as a string.
var item = cb.ArgItem(i);
output = output + item.ValueStr();
if (i < cb.ArgCount()) {
output = output + ", ";
}
}
Console.WriteLine(output);
}
// Define a variadic function that accepts any number of arguments ByHandle.
uc.DefineFunction("Print(ByHandle args As AnyType...)", PrintGeneric);
uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)");
User:, Alice, ID:, 101, Status:, true using uCalcSoftware; var uc = new uCalc(); static void PrintGeneric(uCalc.Callback cb) { string output = ""; var i = 0; for ( i = 1; i <= cb.ArgCount(); i++) { // Get the item and retrieve its value as a string. var item = cb.ArgItem(i); output = output + item.ValueStr(); if (i < cb.ArgCount()) { output = output + ", "; } } Console.WriteLine(output); } // Define a variadic function that accepts any number of arguments ByHandle. uc.DefineFunction("Print(ByHandle args As AnyType...)", PrintGeneric); uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)");
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
void ucalc_call PrintGeneric(uCalcBase::Callback cb) {
string output = "";
auto i = 0;
for ( i = 1; i <= cb.ArgCount(); i++) {
// Get the item and retrieve its value as a string.
auto item = cb.ArgItem(i);
output = output + item.ValueStr();
if (i < cb.ArgCount()) {
output = output + ", ";
}
}
cout << output << endl;
}
int main() {
uCalc uc;
// Define a variadic function that accepts any number of arguments ByHandle.
uc.DefineFunction("Print(ByHandle args As AnyType...)", PrintGeneric);
uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)");
}
User:, Alice, ID:, 101, Status:, true #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; void ucalc_call PrintGeneric(uCalcBase::Callback cb) { string output = ""; auto i = 0; for ( i = 1; i <= cb.ArgCount(); i++) { // Get the item and retrieve its value as a string. auto item = cb.ArgItem(i); output = output + item.ValueStr(); if (i < cb.ArgCount()) { output = output + ", "; } } cout << output << endl; } int main() { uCalc uc; // Define a variadic function that accepts any number of arguments ByHandle. uc.DefineFunction("Print(ByHandle args As AnyType...)", PrintGeneric); uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)"); }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub PrintGeneric(ByVal cb As uCalc.Callback)
Dim output As String = ""
Dim i = 0
For i = 1 To cb.ArgCount()
'// Get the item and retrieve its value as a string.
Dim item = cb.ArgItem(i)
output = output + item.ValueStr()
If i < cb.ArgCount() Then
output = output + ", "
End If
Next
Console.WriteLine(output)
End Sub
Public Sub Main()
Dim uc As New uCalc()
'// Define a variadic function that accepts any number of arguments ByHandle.
uc.DefineFunction("Print(ByHandle args As AnyType...)", AddressOf PrintGeneric)
uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)")
End Sub
End Module
User:, Alice, ID:, 101, Status:, true Imports System Imports uCalcSoftware Public Module Program Public Sub PrintGeneric(ByVal cb As uCalc.Callback) Dim output As String = "" Dim i = 0 For i = 1 To cb.ArgCount() '// Get the item and retrieve its value as a string. Dim item = cb.ArgItem(i) output = output + item.ValueStr() If i < cb.ArgCount() Then output = output + ", " End If Next Console.WriteLine(output) End Sub Public Sub Main() Dim uc As New uCalc() '// Define a variadic function that accepts any number of arguments ByHandle. uc.DefineFunction("Print(ByHandle args As AnyType...)", AddressOf PrintGeneric) uc.Eval("Print('User:', 'Alice', 'ID:', 101, 'Status:', true)") End Sub End Module