Importy w solidity
W solidity możemy importować inne pliki źródłowe używając instrukcji import.
Przykłady importowania .
import "sourcefile"; // wszystkie globalne symbole z pliku sourcefile zostaną zaimportowane również jako globalne
import * as symbol from "sourcefile"; // wszystkie globalne symbole z pliku sourcefile zostaną zaimportowane jako część symbol, będą dostępne jako symbol.xxx
//alternatywą dla powyższej instrukcji jest
import "sourcefile" as symbol;
Mamy również możliwość stosowania aliasów.
import {symbol as alias} from "filename";
Komentarze
W solidity mamy możliwość dodawania jednolinijkowych i wielolinijowych komentarzy.
// komentarz jednolinijkowy
/*
komentarz wielolinijkowy
*/
Struktura kontraktu
Kontrakt w solidity przypominają klasy z innych języków programowania. Kontrakty mogą dziedziczyć z innych kontraktów. Kontrakt może zawierać:
Zmienne stanu
Zmienne które na stałe, są zapisywane w kontrakcie, jego storze.
contract Box {
string message;
}
Funkcje
Funkcje dzielą kontrakt na wykonywalne kawałki.
function geMessage() public view { // Funkcja
}
Modyfikatory
Specjalne semantyczne jednostki, mające wpływa na wykonywanie funkcji.
modifier onlySeller() { // Modyfikator ten powoduje, że funkcja dla której zostanie użyty, zostanie wywołana tylko i wyłącznie dla właściciela kontraktu
require(
msg.sender == seller
);
_;
}
function abort() public onlySeller { // Użycie modyfikatora
}
Zdarzenia
W solidity mamy możliwość tworzenia zdarzeń.
event messageEvent(address person); // Zdarzenia deklaracja
function del() public {
emit messageEvent(msg.sender); // Wywołanie zdarzenia
}
Struktury
W solidity mamy możliwość prezentowania bardziej skomplikowanych danych za pomocą struktur.
struct Car { // Struktura
uint wheels;
bool electric;
......
}
Typy wyliczeniowe
Skończony zbiór stałych wartości.
enum State { Created, Deleted, Active } // Przykład typu wyliczeniowego