Erişim Belirleyiciler

Solidity'de erişim belirleyiciler, kontrattaki değişkenlerin ve fonksiyonların görünürlüğünü ve erişilebilirliğini kontrol etmek için kullanılır. Bu belirleyiciler, hangi kod parçalarının kontratın hangi bölümlerine erişebileceğini tanımlar.

1. public

  • Değişkenler için: Değişken hem dışarıdan hem de kontrat içerisinden erişilebilir. Solidity, public olarak tanımlanan durum değişkenleri için arkaplanda otomatik getter fonksiyonları oluşturur.

uint256 public publicDegisken = 10;
  • Fonksiyonlar için: Fonksiyon dışarıdan (yani kontrat dışından) ve kontrat içerisinden çağrılabilir.

function getValue() public view returns (uint256) {
    return value;
}

2. private

  • Değişkenler için: Değişken yalnızca tanımlandığı kontratın içinden erişilebilir. Alt kontratlar bile bu değişkene doğrudan erişemez.

uint256 private privateDegisken = 42;
  • Fonksiyonlar için: Fonksiyon yalnızca tanımlandığı kontratın içinden çağrılabilir. Alt kontratlar ve dışarıdaki başka bir kontrat bu fonksiyonu çağırma yetkisine sahip değildir.

function calculateSecret() private view returns (uint256) {
    return secretValue * 2;
}

3. internal

  • Değişkenler için: Değişken, tanımlandığı kontratın içinden ve bu kontratı miras alan (inheriting) kontratlar tarafından erişilebilir. Ancak dışarıdan doğrudan erişilemez.

  • Fonksiyonlar için: Fonksiyon, tanımlandığı kontratın içinden ve bu kontratı miras alan kontratlar tarafından çağrılabilir. Dışarıdan erişim yoktur.

4. external

  • Fonksiyonlar için: Fonksiyon yalnızca kontrat dışından çağrılabilir. Kontratın içinde çağrılmak istendiğinde this anahtar kelimesi ile çağrılmalıdır. external genelde metamask ile arayüzden tetikleyeceğimiz fonksiyonlarda kullanılır.

Not: external belirleyicisi değişkenler için kullanılamaz.

Örnek Uygulama

Last updated