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
publicDeğişkenler için: Değişken hem dışarıdan hem de kontrat içerisinden erişilebilir. Solidity,
publicolarak 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
privateDeğ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
internalDeğ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
externalFonksiyonlar için: Fonksiyon yalnızca kontrat dışından çağrılabilir. Kontratın içinde çağrılmak istendiğinde
thisanahtar 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