Foreach with Arguments

April 3, 2025 ยท View on GitHub

To iterate over an array with additional arguments, use the foreach_with_args function. Here's an example:

#include "CHashManipulatorOne.c"

CHashNamespace hash;
CHashObjectModule obj;
CHashArrayModule array;
CHashValidatorModule validator;

void print_adding(CHash *element, va_list args) {
    long value_to_add = va_arg(args, long);
    int type = hash.get_type(element);
    double value = hash.toNumber(element);
    printf("%lf\n", value + value_to_add);
}

int main() {
    hash = newCHashNamespace();
    obj = hash.object;
    array = hash.array;

    CHashArray *element = newCHashArray(
        newCHashNumber(10),
        newCHashNumber(34)
    );
    array.foreach_with_args(element, print_adding, 10);

    hash.free(element);
}

This code iterates over an array, adding 10 to each number and printing the result.