Skip to content
René Descartes Muala edited this page May 1, 2021 · 1 revision

Arrays [ 1️⃣ , 🅰️ , 🌄 , 🚗 ]

When we have a group of data that:

  • Have a relationship
  • Need to be store in a list
  • Don't need specific names for each element

Probably an array is the solution to our problem, basically Landb Arrays are lists of data, where every element can be iterated (appended), set(changed) or removed.

About Landb Arrays 📄

  • They can have data of multiple types
  • They don't have a limit, only temporary ranges
  • They indexes start at 0

The set() method again 😅

We use the set() method in arrays to change it elements.

// Usage
database.set< data_type >("array_name", array_index, element_data, landb_type);
// Example - fruits[2] = "avocado"
database.set< std::string >("fruits", 2, "avocado", lan::String);

The get() method 📍

The simplest way to get data in landb is the get() method. Examples:

  • getting data from a variable in the main context
// Usage
database.get< data_type >("variable_name", landb_type);
// Example
database.get< std::string >("name", lan::String);

  • getting data from an array
// Usage
database.get< data_type >("array_name", array_index, landb_type);
// Example
database.get< std::string >("names", i, lan::String);

Declaring an array 📝

The declare() method is an easy and simple way to declare arrays. Example program:

    // Declaring an array called fruits in main context
    database.declare("fruits", lan::Array);

Appending data an Array 0️⃣ > 1️⃣ > 2️⃣ > 3️⃣ ...

Once we have our fruits array declared, we can append it by using the iterate() method:

    // Append "mango" to fruits
    database.iterate< std::string >("fruits", "mango", lan::String);
    // Append "avocado" to fruits
    database.iterate< std::string >("fruits", "avocado", lan::String);
    // Append "orange" to fruits
    database.iterate< std::string >("fruits", "orange", lan::String);

Changing Array data 🧮

Here we are going to use the set() method, to change some fruit!

    // Changing "avocado" to "banana"
    database.set< std::string >("fruits", 1, "banana", lan::String);

The resulting fruit array should be [s:"mango", s:"banana", s:"orange"].

Printing the Array data 📺

For each fruit in 0...2 print it

    for (int i = 0 ; i < 3 ; i ++) {
        // Get fruits[I] as std::string
        std::cout << database.get< std::string >("fruits", i, lan::String) << std::endl;
    }

Here is the entire code {✨}

#include <iostream>
#include "landb.hpp"

int main(int argc, const char * argv[]) {
    
    // Database
    lan::db database;
        
    // Declaring an array variable called fruits in main context
    database.declare("fruits", lan::Array);
    
    // Append "mango" to fruits
    database.iterate< std::string >("fruits", "mango", lan::String);
    // Append "avocado" to fruits
    database.iterate< std::string >("fruits", "avocado", lan::String);
    // Append "orange" to fruits
    database.iterate< std::string >("fruits", "orange", lan::String);
      
    // Changing "avocado" to "banana"
    database.set< std::string >("fruits", 1, "banana", lan::String);
    
    for (int i = 0 ; i < 3 ; i ++) {
        // Get fruits[I] as std::string
        std::cout << database.get< std::string >("fruits", i, lan::String) << std::endl;
    }
    
    return 0;
}

Go back to Home.