Programlama

Solidity’de Değişkenlerin ve Fonksiyonların Görünürlüğü Nasıl Yönetilir?

Görünürlük değiştiricileri, uygulamalarınızdaki ve kod tabanınızdaki değişkenlere ve işlevlere erişim düzeyini belirler. Bu erişim değiştiriciler, hangi akıllı sözleşmelerin belirli bir sözleşmenin verilerini ve davranışını görebileceğini korumak için gereklidir.

Solidity, durum değişkenleri için üç görünürlük düzeyine ve işlevler için dört düzeye sahiptir. Bu Solidity programlama eğitiminde, geliştiriciler bu değiştiricileri nasıl kullanacaklarını öğrenecekler.

kavramını ele aldık. Solidity’de kalıtım önceki bir makalede. Bunu da okumanızı tavsiye ederiz.

Katılıkta Durum Değişken Görünürlüğü

Solidity’de bir durum değişkeninin görünürlüğünü tanımlamak için, aşağıdaki örnek kodda gösterildiği gibi, değiştirici ile değişken adının önüne gelmeniz yeterlidir:

// Unlike in Java,
// the data type comes before the visibility modifier in Solidity 
uint public num;

Geliştiricilerin kullanabileceği üç görünürlük değiştiricisi vardır: halka açık, dahiliveya özel.

    • Halk değişkene sözleşme ve diğer akıllı sözleşmeler tarafından erişilebileceği anlamına gelir. Değişkene dahili olarak erişirken, sadece değişken adını kullanın (örn. var). Harici olarak erişirken, gösterimi kullanın this.var.Bir genel değişken için her zaman bir alıcı işlevi yaratıldığını belirtmekte fayda var. Bu nedenle, bir değişkene dışarıdan erişildiğinde bu işlev çağrılır. Oluşturulan alıcı işlevi, genel değişkenle aynı ada sahiptir ve hiçbir argüman almaz. Ancak, harici işlevin değişkeni değiştiremeyeceği anlamına gelen hiçbir ayarlayıcı işlevi oluşturulmaz.
    • Dahili değişkenin yalnızca tanımlandığı sözleşme ve alt sınıfları ile kullanılabileceği anlamına gelir.
    • Özel değişkene yalnızca tanımlı olduğu sözleşme içerisinden erişilebileceği anlamına gelir. Bu sözleşme dışında erişmeye çalışmak derleme hatası veriyor.

Sağlamlıkta İşlev Görünürlüğü

Solidity’de iki tür işlev çağrısı vardır: dahili ve harici. Harici işlev çağrıları gerçek bir EVM çağrısı yaparken, dahili işlev çağrıları bir EVM çağrısı yapmaz. Alt sınıflara yapılan dahili çağrıların görünürlük düzeyi kısıtlanabilir, böylece görünürlük değiştiricilerinin sayısı dört olur.

Solidity’deki erişim değiştiricileri şunlardır: harici, halka açık, dahili ve özel:

      • Bir harici işlevine işlemler kullanılarak diğer sözleşmelerden erişilebilir. Bu tür bir işleve şuradan erişilebilir: this.işlevAdı() notasyon ve sadece fonksiyon adı().
      • A halka açık işlev, dahili olarak veya bir EVM mesaj çağrısı yoluyla çağrılabilir.
      • Bir dahili fonksiyona tanımlandığı sözleşmede ve alt sınıflarında erişilebilir.
      • A özel işlev yalnızca tanımlandığı sözleşmeden çağrılabilir.

Aşağıdaki Solidity kodu örneği, yukarıdaki bölümlerde öğrendiğimiz tüm kavramları yeniden uygular:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.5.0 <0.9.0;

contract A{

unit private a;

function f1(unit x, unit z) internal returns (unit){
return x + z; }

function f2(unit y) private  returns(uint b){
return 6*y ; }
}

contract B {

function f3() public{

A crtA = new A();
unit var = crtA.f2(89);  // compilation error 
}
}

contract C is A {

    function f4() public {
        A contA = new A();
        uint var2 = f1(74, 51);  
  } }

Solidity’de Değişken ve Fonksiyon Görünürlüğü Üzerine Düşünceler

Solidity uygulamalarınızdaki değişkenlere ve işlevlere erişim düzeyini sınırlamak için görünürlük gereklidir. her zaman kullanmalısın en az ayrıcalık ilkesi hangi görünürlük düzeyinin kullanılacağını belirlerken. Yani, yalnızca gerektiği kadar görünürlük atayın, daha fazlasını değil.

Son olarak, Solidity geliştiricilerinin özel veya dahili görünürlüğün diğer sözleşmelerin sözleşmenizin verilerine erişimini kısıtladığını bilmesi önemlidir. Bununla birlikte, veriler hala blok zincirinde herkese açık olarak görüntülenebilir.

Okumak: En İyi Çevrimiçi Python Kursları

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu