Solidity

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez

A Solidity okosszerződéseket támogató, imperatív, objektumorientált programnyelv. Elsősorban az Ethereumon és az Ethereumra épülő egyéb blokkláncon használják. A nyelvhez tartozik a solc (Solidity Compiler) fordító, mely az Ethereum Virtual Machine-nal kompatibilis bájtkódot állít elő a Solidity kódból.

Programozási paradigmák[szerkesztés]

Szintaxis, nyelvi elemek[szerkesztés]

Solidityben a blokkok kapcsoszárójelekkel vannak jelölve. Az utasítások végén pontosvessző szerepel. A kód az opcionális SPDX licenszazonosítóval és az aktuális Solidity fordító verziószámának megadásával kezdődik.

Főbb kulcsszavak[szerkesztés]

pragma solidity <verzió>: A Solidity fordító (solc) verziójának megadására szolgál. Megadható fix verzió, vagy akár intervallum. A fejlesztő ezzel jelzi, hogy melyik verzión fut el a program. Elhagyása vagy nem megfelelő megadása fordítási hibát eredményez.

contract <név>: Okosszerződést definiáló blokk.

public, private, external, internal: Láthatóságot beállító kulcsszavak. A public és private megegyezik a többi objektumorientált nyelvben ismeretes működéssel. Az external módosítószó kikényszeríti, hogy az adott metódus kizárólag kívülről legyen meghívható, míg az internal ezzel ellenkezőleg azt adja meg, hogy kizárólag az őt magába foglaló okosszerződés tudja meghívni.

import: Más fájl tartalmának beolvasása

constructor: konstruktor

event: esemény definiálására szolgál

emit: esemény rögzítése

library: származtatással újrahasznosítható függvényeket definiáló blokk

Adattípusok[szerkesztés]

address: ETH (wallet) cím hexadecimális formában, 0x-szel prefixelve.

uint: előjel nélküli egész

uint8: 8 bites előjel nélküli egész (uint16, uint32, uint256, stb. ennek mintájára működik)

int: előjeles egész

bool: logikai érték

string: karakterlánc

bytes: bájtok sorozata (meghatározható a mérete hasonlóképp a uint-hez)

mapping: Asszociatív tömb tetszőleges típusú kulccsal és értékkel, mely típusokat a definícióban kell megadni. Például mapping (address => uint) associatedAddresses;

struct: Különféle adattípusokat aggregáló struktúra (hasonlóképpen működik, mint a C nyelvcsaládban)

enum: enumerátor típus

Hivatkozások[szerkesztés]

A Solidity dokumentációja: https://docs.soliditylang.org/en/latest/