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
Congratulations @cybor0! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @cybor0! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit