Solidity Dersleri 6: Fonksiyonların Temelleri

Fonksiyonlar, Solidity’de belirli işlemleri gerçekleştirmek için kullanılan kod bloklarıdır. Akıllı sözleşmelerin kalbinde yer alan bu yapılar, veriyi işlemek, belirli hesaplamaları yapmak veya blockchain üzerinde işlemler gerçekleştirmek için kullanılır. Bu yazıda, Solidity’de fonksiyonların nasıl tanımlandığını, erişim belirleyicilerini ve fonksiyonlarla ilgili temel kavramları ele alacağız.

Fonksiyon Tanımı

Solidity’de bir fonksiyon tanımlamak oldukça basittir. Aşağıda, temel bir fonksiyonun nasıl tanımlandığını inceleyeceğiz.

Gelin akıllı sözleşme kodundaki elemanların ne ifade ettiğine tek tek bakalım:

  1. function greet(): greet adında bir fonksiyon tanımlanmıştır.
  2. public: Fonksiyonun erişim belirleyicisidir (aşağıda detaylıca açıklanacaktır).
  3. pure: Fonksiyonun durumu değiştirmediğini veya blockchain verilerini okumadığını belirtir.
  4. returns (string memory): Fonksiyonun string türünde bir değer döndüreceğini ifade eder.
  5. return “Merhaba, Dünya!”: Fonksiyon çağrıldığında bu değeri döndürür.

Fonksiyon Parametreleri

Fonksiyonlar, girdiler alabilir ve bu girdilere göre işlem yapabilir. Hemen basit bir örnek yapalım.

Örnekteki add fonksiyonu iki adet uint (pozitif tam sayı) parametresi alır ve bu iki sayının toplamını döndürür.

Erişim Belirleyicileri

Fonksiyonların kimler tarafından çağrılabileceğini belirlemek için erişim belirleyicileri kullanılır. Solidity’de dört ana erişim belirleyicisi vardır:

1. public

Bir fonksiyon public olarak tanımlandığında, hem sözleşme içinden hem de dışından çağrılabilir.

2. private

private fonksiyonlar yalnızca aynı sözleşme içerisinden erişilebilir. Bu, sözleşme dışındaki kullanıcıların veya diğer sözleşmelerin bu fonksiyona erişmesini engeller.

3. internal

internal fonksiyonlar, yalnızca aynı sözleşmeden veya ondan türetilmiş (inheritance yoluyla) sözleşmelerden çağrılabilir. private fonksiyonlardan farklı olarak, miras alan sözleşmeler bu fonksiyonlara erişebilir.

4. external

external fonksiyonlar yalnızca sözleşme dışından çağrılabilir. Sözleşme içinden çağrılmaları gerekiyorsa this anahtar kelimesi kullanılmalıdır.

external fonksiyonlar sözleşme içinden this.externalFunction() şeklinde çağrılabilir. Ancak bu, daha fazla gas maliyeti oluşturur.

BelirleyiciSözleşme İçiSözleşme DışıMiras Alan Sözleşmeler
public✔️✔️✔️
private✔️
internal✔️✔️
external✔️

Latest Articles

- Advertisement -

Bunları da okumak isteyebilirsiniz...