Menu
Coddy logo textTech

Strukturen

Teil des Abschnitts Grundlagen der Solidity-Journey von Coddy. Lektion 43 von 53.

Eine struct fasst verwandte Felder unter einem benutzerdefinierten Typnamen zusammen. Jedes Feld hat einen Typ und einen Namen, und Felder können unterschiedliche Typen haben. Deklariere den Typ auf Vertragsebene, erstelle einen Wert und greife dann mit einem Punkt auf seine Felder zu.

Deklariere dies auf Vertragsebene:

struct Parcel { uint256 weight; bool ready; }

Verwende es innerhalb der bereitgestellten main-Funktion:

Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);

Der Typ Parcel verfügt über die Felder weight und ready. Der Positionskonstruktor weist die Werte in der Reihenfolge ihrer Deklaration zu. Dieses Element befindet sich während des aktuellen Aufrufs im Speicher; allein durch die Deklaration eines Struct-Typs werden keine gespeicherten Datensätze erstellt.

Verwende einen Punkt gefolgt vom Feldnamen, um ein Struct-Feld zu lesen oder zu ändern.

challenge icon

Aufgabe

Einfach

Deklariere eine Struct namens Badge mit uint256 level und bool active, in dieser Reihenfolge. Erstelle aus den bereitgestellten Eingaben eine Badge im Speicher und gib beide Felder aus.

Die Tests übergeben Argumente an main in dieser Reihenfolge: uint256 level, bool active. Jeder Test beginnt mit einem neuen Contract-Zustand.

Verwende console.log für die angeforderte Ausgabe. Gib nur die angeforderten Werte aus, jeweils einen pro Zeile, ohne zusätzliche Bezeichnungen, sofern die Aufgabe diese nicht vorgibt.

Probier es selbst

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 level, bool active) external view {
        // Schreibe deine Lösung hier.
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Solidity-Playground