Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Structs in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a struct in blockchain programming?
A struct is a way to group related data together into one unit, like putting different pieces of information about a person into one folder.
Click to reveal answer
beginner
How do you define a struct in Solidity?
You use the struct keyword followed by the struct name and curly braces containing the variables, for example:
struct Person { string name; uint age; }
Click to reveal answer
intermediate
Can structs contain other structs inside them?
Yes, structs can have other structs as members, allowing you to build complex data models by nesting structs.
Click to reveal answer
beginner
How do you create and use a struct variable in Solidity?
You declare a variable of the struct type and assign values to its fields, like:
Person memory p = Person("Alice", 30);
Click to reveal answer
beginner
Why are structs useful in blockchain smart contracts?
Structs help organize data clearly and efficiently, making contracts easier to read and manage, especially when handling complex information.
Click to reveal answer
What keyword is used to define a struct in Solidity?
Astruct
Bclass
Cobject
Drecord
Which of these can a struct contain?
AOther structs
BOnly simple data types like uint and string
CFunctions
DEvents
How do you create a struct variable in Solidity?
ABy calling a constructor function
BBy importing from another contract
CBy declaring a variable of the struct type and assigning values
DBy using the new keyword
Why use structs in smart contracts?
ATo speed up contract execution
BTo organize related data together
CTo create user interfaces
DTo store contract code
Which of these is NOT a valid member type inside a struct?
Auint
Bstring
Caddress
Dmapping
Explain what a struct is and why it is useful in blockchain smart contracts.
Think about how you keep related information together in real life.
You got /4 concepts.
    Describe how to define and use a struct in Solidity with an example.
    Imagine creating a new type to hold multiple pieces of information.
    You got /5 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of using structs in blockchain programming?

      easy
      A. To perform mathematical calculations faster
      B. To group related data together under one name
      C. To create loops for repeating tasks
      D. To store only single values like integers

      Solution

      1. Step 1: Understand what structs do

        Structs are used to group different pieces of related data into one unit.
      2. Step 2: Compare options

        Only To group related data together under one name correctly describes grouping related data. Other options describe unrelated tasks.
      3. Final Answer:

        To group related data together under one name -> Option B
      4. Quick Check:

        Structs = Group related data [OK]
      Hint: Think of structs as folders holding related info [OK]
      Common Mistakes:
      • Confusing structs with loops or calculations
      • Thinking structs store only single values
      • Assuming structs speed up math operations
      2.

      Which of the following is the correct syntax to define a struct named Person with fields name (string) and age (uint)?

      ?
      easy
      A. struct Person(string name, uint age);
      B. struct Person = (string name, uint age);
      C. Person struct { string name; uint age; }
      D. struct Person { string name; uint age; }

      Solution

      1. Step 1: Recall struct syntax in blockchain languages

        Structs are defined with the keyword struct, followed by the name and curly braces containing fields with types and names.
      2. Step 2: Check each option

        struct Person { string name; uint age; } matches the correct syntax. Options B, C, and D use incorrect punctuation or order.
      3. Final Answer:

        struct Person { string name; uint age; } -> Option D
      4. Quick Check:

        Correct struct syntax = struct Person { string name; uint age; } [OK]
      Hint: Remember: struct Name { type field; } [OK]
      Common Mistakes:
      • Using parentheses instead of braces
      • Assigning struct like a variable
      • Omitting semicolons after fields
      3.

      Given the struct and code below, what will be the output?

      struct Car {
        string brand;
        uint year;
      }
      
      Car myCar = Car("Tesla", 2020);
      
      print(myCar.brand);
      medium
      A. Tesla
      B. 2020
      C. Car
      D. Error: Cannot print struct field

      Solution

      1. Step 1: Understand struct initialization

        The struct Car is created with brand "Tesla" and year 2020.
      2. Step 2: Identify printed field

        The code prints myCar.brand, which is "Tesla".
      3. Final Answer:

        Tesla -> Option A
      4. Quick Check:

        Print myCar.brand = Tesla [OK]
      Hint: Print the field name, not the whole struct [OK]
      Common Mistakes:
      • Printing the whole struct instead of a field
      • Confusing brand with year
      • Expecting an error when printing a field
      4.

      What is wrong with the following struct usage?

      struct Book {
        string title;
        uint pages;
      }
      
      Book myBook;
      myBook.title = "Learn Blockchain";
      myBook.pages = "300";
      medium
      A. Struct name should be lowercase
      B. Missing semicolon after struct definition
      C. Cannot assign string to pages which is uint
      D. Cannot assign values after declaration

      Solution

      1. Step 1: Check field types and assignments

        The field pages is of type uint, but assigned a string "300".
      2. Step 2: Identify type mismatch error

        Assigning a string to a number type causes a type error.
      3. Final Answer:

        Cannot assign string to pages which is uint -> Option C
      4. Quick Check:

        Type mismatch in assignment = Cannot assign string to pages which is uint [OK]
      Hint: Match field types exactly when assigning values [OK]
      Common Mistakes:
      • Assigning string to a number field
      • Ignoring type errors
      • Thinking struct names must be lowercase
      5.

      You want to store multiple Employee structs in a list and then find the average age. Which approach correctly uses structs and arrays?

      struct Employee {
        string name;
        uint age;
      }
      
      Employee[] employees;
      employees.push(Employee("Alice", 30));
      employees.push(Employee("Bob", 40));
      
      uint totalAge = 0;
      for (uint i = 0; i < employees.length; i++) {
        totalAge += employees[i].age;
      }
      uint averageAge = totalAge / employees.length;
      print(averageAge);
      hard
      A. This code correctly calculates and prints average age
      B. Cannot push structs into arrays
      C. Loop should use i <= employees.length
      D. Cannot access struct fields inside arrays

      Solution

      1. Step 1: Understand struct array usage

        The code creates an array of Employee structs and adds two employees.
      2. Step 2: Check loop and calculation

        The loop sums ages correctly using employees[i].age and divides by length to get average.
      3. Final Answer:

        This code correctly calculates and prints average age -> Option A
      4. Quick Check:

        Struct arrays and loops = correct [OK]
      Hint: Use array indexing and dot to access struct fields [OK]
      Common Mistakes:
      • Using <= instead of < in loop causing out-of-bounds
      • Thinking structs can't be stored in arrays
      • Trying to access struct fields without indexing
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard