2 min read

Introduction to Structs

Introduction to Structs in Solidity

Solidity is a programming language that is designed to write smart contracts on the Ethereum blockchain. It includes several data types that allow developers to define variables with specific characteristics, such as integer values or Boolean values. One of the most powerful data types in Solidity is the struct.

A struct is a custom data type that allows developers to define variables with multiple fields. This can be useful when writing smart contracts that need to store complex data structures, such as a list of employees with names, ages, and salaries. In this blog post, we'll explore how to use structs in Solidity 0.8.16 by building a simple smart contract that stores employee data.

Defining a Struct

In Solidity, a struct is defined using the struct keyword followed by the name of the struct and its fields. For example, let's say we want to define a struct for an employee with three fields: nameage, and salary. We can define this struct as follows:

struct Employee {
    string name;
    uint age;
    uint salary;
}

This defines a struct called Employee with three fields: name, which is a string, age, which is an unsigned integer (uint), and salary, which is also an unsigned integer.

Using a Struct

Once we've defined a struct, we can use it to create variables with multiple fields. For example, let's say we want to create a variable that stores the data for a single employee. We can create a new variable of type Employee and set its fields like this:

Employee myEmployee;
myEmployee.name = "Alice";
myEmployee.age = 30;
myEmployee.salary = 5000;

This creates a new variable called myEmployee of type Employee and sets its fields to "Alice" for the name, 30 for the age, and 5000 for the salary.

Creating an Array of Structs

We can also use structs to create arrays of data with multiple fields. For example, let's say we want to create an array of employees to store multiple records. We can define an array of Employee structs like this:

Employee[] employees;

This creates a new array called employees of type Employee[]. We can then add new employees to the array like this:

Employee newEmployee = Employee("Bob", 25, 4000);
employees.push(newEmployee);

This creates a new Employee struct called newEmployee with the values "Bob" for the name, 25 for the age, and 4000 for the salary. We then add this new employee to the employees array using the push() function.

Conclusion

Structs are a powerful data type in Solidity that allow developers to define variables with multiple fields. They can be used to store complex data structures in smart contracts, such as employee records or financial transactions. In this blog post, we've explored how to define and use structs in Solidity 0.8.16 by building a simple smart contract that stores employee data in an array of Employee structs.

Feedback

Have feedback? Found something that needs to be updated, accurate, or explained?

Join our discord and share what can be improved.

Any and all feedback is welcomed.