Lohkoketjun älysopimukset Soliditylla · Oppitunti

Funktiot ja näkyvyysmääritteet

Ymmärrä, miten funktioita määritetään, niiden näkyvyyttä hallitaan (public, private, internal, external) ja funktioiden parametreja sekä palautusarvoja käsitellään.

Oppitunti 3/412 vaihetta

Funktiot ja näkyvyysmääritteet on ilmainen Lohkoketjun älysopimukset Soliditylla-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Lohkoketjun älysopimukset Soliditylla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Lohkoketjun älysopimukset Soliditylla-kurssilla on yhteensä 4 oppituntia.

Funktiot: sopimuksen toiminnot

Tervetuloa oppitunnille 3! Tänään perehdymme Solidityn funktioihin. Ajatelkaa funktioita toimintoina tai operaatioina, joita älysopimus voi suorittaa.

Niiden avulla voitte järjestää koodinne, tehdä siitä uudelleenkäytettävää ja määrittää, miten käyttäjät (tai muut sopimukset) voivat käsitellä sopimuksen tietoja ja logiikkaa.

Yksinkertaisen funktion määrittäminen

Jokaisella funktiolla on oltava nimi ja runko, jossa sen koodi sijaitsee. Perusrakenne on seuraava:

  • Avainsana function
  • Funktion nimi (esimerkiksi greet)
  • Parametrien sulkeet ()
  • Koodilohkon aaltosulkeet {}

Katsotaan hyvin yksinkertaista esimerkkiä.

Funktion perusesimerkki

Tässä sopimuksessa on funktio nimeltä getName. Se ei vastaanota syötteitä, vaan palauttaa yksinkertaisesti merkkijonon. Lisäämme näkyvyyden myöhemmin!

Kokeile suorittaa se nähdäksesi, miten funktio voi palauttaa arvon.

pragma solidity ^0.8.0;

contract MyFirstFunctions {
    function getName() pure returns (string memory) {
        return "Coddy";
    }
}

Käyttöoikeuksien hallinta: näkyvyys

Solidity-funktioilla, kuten muuttujillakin, on näkyvyysmääreet. Ne määrittävät, kuka voi kutsua funktiota ja miten.

Näkyvyyden ymmärtäminen on ratkaisevan tärkeää turvallisuuden ja asianmukaisen sopimussuunnittelun kannalta. Näkyvyystyyppejä on neljä: public, external, internal ja private.

Julkiset funktiot: avoimia kaikille

public-funktio on käytettävissä laajimmin. Sitä voidaan kutsua:

  • Sopimuksen ulkopuolelta (käyttäjien tai muiden sopimusten toimesta).
  • Sopimuksen sisältä (saman sopimuksen muiden funktioiden toimesta).

Jos näkyvyyttä ei määritetä, funktiot ovat oletusarvoisesti public. Hyvä käytäntö on määrittää näkyvyys aina eksplisiittisesti.

Julkinen funktio käytännössä

Tässä setValue ja getValue ovat molemmat julkisia. Voitte kutsua niitä suoraan ulkoiselta tililtä tai toisesta sopimuksesta.

Suorittakaa tämä esimerkki ja kokeilkaa kutsua molempia funktioita käyttöönoton jälkeen.

pragma solidity ^0.8.0;

contract PublicExample {
    uint public myValue;

    function setValue(uint _newValue) public {
        myValue = _newValue;
    }

    function getValue() public view returns (uint) {
        return myValue;
    }
}

Ulkoiset funktiot: vain ulkoisia kutsuja varten

external-funktioita voidaan kutsua ainoastaan sopimuksen ulkopuolelta. Saman sopimuksen muut funktiot eivät voi kutsua niitä sisäisesti.

Niitä käytetään usein funktioissa, jotka toimivat ulkoisen vuorovaikutuksen aloituspisteinä. Ne ovat myös kaasunkulutuksen kannalta tehokkaampia vastaanotettaessa suuria tietotaulukoita.

Ulkoisen funktion esimerkki

Huomaatte, että onlyExternal-funktiota voidaan kutsua vain ulkopuolelta. Jos jokin ExternalExample-sopimuksen sisäinen funktio yrittäisi kutsua sitä, seurauksena olisi käännösvirhe.

Suorittakaa tämä nähdäksenne ulkoisen vuorovaikutuksen.

pragma solidity ^0.8.0;

contract ExternalExample {
    uint public count = 0;

    function incrementExternal() external {
        count++;
    }

    // This function can't call incrementExternal() directly.
    // Try adding 'incrementExternal();' inside this function to see the error.
    function getCount() public view returns (uint) {
        return count;
    }
}

Internal ja private: sisäiseen käyttöön

internal-funktioita voidaan kutsua vain nykyisen sopimuksen sisältä tai sopimuksista, jotka perivät sen.

private-funktioilla on tiukimmat rajoitukset. Niitä voidaan kutsua ainoastaan sen sopimuksen sisältä, jossa ne on määritetty. Perivät sopimuksetkaan eivät voi kutsua niitä.

Nämä sopivat erinomaisesti apufunktioihin, joita ei pidä altistaa ulkopuolisille.

Parametrit ja palautusarvot

Funktiot voivat vastaanottaa parametreja (syötteitä) ja palauttaa arvoja (tulosteita).

  • Parametrit määritetään sulkeiden () sisällä.
  • Palautustyypit määritetään käyttämällä avainsanaa returns (type).

Tämän ansiosta funktiot voivat olla dynaamisia ja käsitellä erilaisia tietoja.

Funktion näkyvyyden tarkistus

Mikä seuraavista funktion näkyvyysmääreistä tarkoittaa, että funktiota voidaan kutsua AINOASTAAN sopimuksen ulkopuolelta, mutta EI saman sopimuksen toisesta funktiosta?

Kertaus: funktiot ja näkyvyys

Hienoa työtä! Olette oppineet Solidity-funktioiden perusteet.

  • Funktiot järjestävät sopimuksen logiikan.
  • public: Kutsuttavissa mistä tahansa.
  • external: Kutsuttavissa vain ulkopuolelta.
  • internal: Kutsuttavissa sopimuksen sisältä ja johdetuista sopimuksista.
  • private: Kutsuttavissa vain määrittävän sopimuksen sisältä.
  • Funktiot voivat vastaanottaa parametreja ja palauttaa arvoja.

Seuraavaksi tutustumme monimutkaisempiin tietorakenteisiin, kuten mappauksiin ja dynaamisiin taulukoihin!

Aloita maksutta

Opi Lohkoketjun älysopimukset Soliditylla tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Funktiot ja näkyvyysmääritteet” ilmainen?

Kyllä – oppitunnin ”Funktiot ja näkyvyysmääritteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Lohkoketjun älysopimukset Soliditylla-kurssin, päivitä CoddyKit PROhon. Lohkoketjun älysopimukset Soliditylla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Funktiot ja näkyvyysmääritteet”?

Ymmärrä, miten funktioita määritetään, niiden näkyvyyttä hallitaan (public, private, internal, external) ja funktioiden parametreja sekä palautusarvoja käsitellään. Harjoittelet Lohkoketjun älysopimukset Soliditylla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Lohkoketjun älysopimukset Soliditylla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Lohkoketjun älysopimukset Soliditylla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Funktiot ja näkyvyysmääritteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Lohkoketjun älysopimukset Soliditylla-oppitunnilla?

Kyllä. Jokainen Lohkoketjun älysopimukset Soliditylla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Solidityn tietotyypit ja muuttujat
  2. Ohjausrakenteet ja silmukat
  3. Funktiot ja näkyvyysmääritteet
  4. Struct-rakenteet ja enum-tyypit
← Takaisin: Lohkoketjun älysopimukset Soliditylla