1. Anasayfa
  2. 100 Günde Solidity

🧵 #100GündeSolidity 005 : Sabitler

🧵 #100GündeSolidity 005 : Sabitler
Sabitler - Solidity Dilinde Değiştirilemeyen Değişkenlerin Kullanımı
0

Sabitler – Solidity Dilinde Değiştirilemeyen Değişkenlerin Kullanımı

#100DaysOfSolidity: Sabitler ve Değişkenler – Solidity Dilinde Değiştirilemeyen ve Değiştirilebilen Değişkenlerin Kullanımı

Sabitler, Solidity dilinde değiştirilemeyen değişkenlerdir. Sabitler, programlama dilinde genellikle bir değerin değiştirilmeyeceğini garanti etmek amacıyla kullanılır. Solidity dilinde, sabitler “constant” anahtar kelimesiyle belirtilir ve sadece “payable” olmayan işlevler tarafından kullanılabilirler. Sabitler, işlevler içinde tanımlanabilir veya bir sözleşmenin bir niteliği olarak tanımlanabilirler.

Sabitler, bir sözleşmenin bir niteliği olarak tanımlanırken, sözleşme içinde tanımlanmış bir işlev tarafından değiştirilemezler. Ancak, sözleşme içinde tanımlanmış bir işlev tarafından sabitlerin değeri değiştirilebilir. Bu, sözleşme içinde tanımlanmış bir işlev tarafından sabitlerin değeri değiştirilerek, bir dahaki sefere aynı işlev çağrıldığında sabitlerin değerinin değiştiği anlamına gelir.

Sabitler, ayrıca işlevler içinde tanımlanabilirler. Bu durumda, sabitler sadece o işlev içinde geçerlidir ve o işlev dışında kullanılamazlar. Bu, sabitlerin yalnızca bir işlev içinde değerlerinin değiştirilemeyeceğini gösterir.

Solidity dilinde sabitler, bir değerin program sırasında değiştirilmemesi gerektiği durumlarda kullanışlıdır. Örneğin, bir sözleşmenin bir niteliği olarak tanımlanan bir sabit, bir işlev tarafından değiştirilemez ve sözleşmenin ömür boyu geçerli olan bir değer olabilir. Benzer şekilde, bir işlev içinde tanımlanan bir sabit de, o işlev içinde geçerli olan bir değer olabilir.

Sabitler ve değişkenler, Solidity dilinde değişkenlerin saklanması ve değiştirilmesi için kullanılan iki farklı tür değişkendir. Ancak, sabitler ve değişkenlerin bazı önemli farklılıkları vardır:

  1. Sabitler değiştirilemez, değişkenler ise değiştirilebilir: Sabitler, program sırasında değeri değiştirilemeyen değişkenlerdir. Değişkenler ise program sırasında değeri değiştirilebilir.
  2. Sabitler sadece “payable” olmayan işlevlerde kullanılabilir, değişkenler ise herhangi bir işlevde kullanılabilir: Sabitler, sadece “payable” olmayan işlevlerde kullanılabilir. “Payable” olmayan işlevler, para gönderimi yapılmayan işlevlerdir. Değişkenler ise herhangi bir işlevde kullanılabilir.
  3. Sabitler bir sözleşmenin bir niteliği olarak tanımlanabilir veya işlevler içinde tanımlanabilir, değişkenler ise sadece işlevler içinde tanımlanabilir: Sabitler, bir sözleşmenin bir niteliği olarak tanımlanabilir veya işlevler içinde tanımlanabilir. Değişkenler ise sadece işlevler içinde tanımlanabilir.
  4. Sabitler, işlevler içinde tanımlanırsa sadece o işlev içinde geçerlidir, değişkenler ise sözleşme ömür boyu geçerlidir: Sabitler, işlevler içinde tanımlanırsa sadece o işlev içinde geçerlidir. Değişkenler ise sözleşme ömür boyu geçerlidir.

Solidity dilinde, sabitler ve değişkenlerin kullanımı birbirlerinden farklıdır ve her ikisi de özel durumlarda kullanışlıdır. Örneğin, bir sözleşmenin bir niteliği olarak tanımlanan bir sabit, bir işlev tarafından değiştirilemez ve sözleşmenin ömür boyu geçerli olan bir değer olabilir. Benzer şekilde, bir işlev içinde tanımlanan bir sabit de, o işlev içinde geçerli olan bir değer olabilir. Değişkenler ise, program sırasında değeri değiştirilebilen değişkenlerdir ve genellikle bir işlev içinde tanımlanırlar. Değişkenler, bir işlev tarafından değiştirilebilir ve sözleşme ömür boyu geçerlidir.

Bu, sabitlerin ve değişkenlerin nasıl kullanılacağı konusunda genel bir fikir verir. Ancak, Solidity dilinde sabitler ve değişkenlerin daha detaylı kullanımı hakkında daha fazla bilgiye ihtiyacınız varsa, lütfen sorun.”

Şimdi, sabitler ve değişkenler hakkında daha fazla bilgiye sahip olduğunuza göre, Solidity dilinde sabitlerin nasıl tanımlandığına dair daha detaylı bilgiye geçebiliriz.

Solidity dilinde, sabitler “constant” anahtar kelimesiyle tanımlanır. Örneğin, aşağıdaki örnekte “sabitSayi” adında bir sabit tanımlanmıştır:

pragma solidity ^0.7.0;

contract Ornek {
    // Sözleşme niteliği olarak tanımlanan sabit
    constant uint256 sabitSayi = 42;

    // İşlev içinde tanımlanan sabit
    function sabitKullanimi() public constant {
        // sabitSayi2, sadece bu işlev içinde geçerlidir
        // ve değiştirilemez
        constant uint256 sabitSayi2 = 24;
    }
}

Örnek Akıllı Sözleşme İnceleme

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract Constants {
    // coding convention to uppercase constant variables
    address public constant MY_ADDRESS = 0x777788889999AaAAbBbbCcccddDdeeeEfFFfCcCc;
    uint public constant MY_UINT = 123;
}
  1. “pragma solidity” satırı, bu sözleşmenin hangi Solidity sürümünü kullandığını belirtir. Bu örnekte, “^0.8.17” kullanılmıştır, bu da Solidity 0.8.17 ve üstü sürümlerinin kullanılmasını belirtir.
  2. “contract Constants” satırı, “Constants” adında bir sözleşme tanımlar.
  3. “MY_ADDRESS” ve “MY_UINT” sabitleri, sözleşme niteliği olarak tanımlanmıştır. Bu sabitler, sözleşme ömür boyu geçerlidir ve işlevler tarafından değiştirilemez.
  4. “MY_ADDRESS” sabiti, bir Ethereum adresi olarak tanımlanmıştır. “MY_UINT” sabiti ise bir “uint” türünde sabittir.
  5. “public” anahtar kelimesi, bu sabitlerin sözleşme dışından da erişilebilir olacağını belirtir. Bu, bu sabitlerin “view” işlevleri tarafından okunabileceği anlamına gelir.

Bu örnek kod parçası, iki adet sözleşme niteliği olarak tanımlanan sabit içerir. Bu sabitler, sözleşme ömür boyu geçerlidir ve işlevler tarafından değiştirilemez. Bu sabitler, sözleşme dışından da erişilebilir hale getirilmiştir ve sadece “view” işlevleri tarafından okunabilir.

Akıllı Sözleşme Güvenliği

Bu sözleşme, birkaç güvenlik açısından değerlendirilebilir:

  1. “pragma solidity” satırı, bu sözleşmenin hangi Solidity sürümünü kullandığını belirtir. Bu, sözleşmenin hangi sürümde test edildiğini ve çalıştırıldığını gösterir. Bu, sözleşmenin güncel bir sürümle yazılıp yazılmadığını anlamaya yardımcı olur.
  2. Sabitlerin tanımlanması, sözleşmenin bazı değerlerinin değiştirilemeyeceğini garanti eder. Bu, sözleşmenin beklenen davranışını sürdürmesine yardımcı olur.
  3. “public” anahtar kelimesinin kullanılması, bu sabitlerin sözleşme dışından da okunabileceğini belirtir. Bu, bu sabitlerin bir “view” işlevi tarafından okunabileceği anlamına gelir. Bu, sözleşmenin özelliklerinin okunabileceğini gösterir.

Bu sözleşme, güvenlik açısından bazı iyi özellikler taşımaktadır. Ancak, her zaman daha fazla güvenlik önlemleri alınması önerilebilir. Örneğin, bu sözleşmede sabitlerin değerleri sadece bir kez tanımlanmıştır ve değiştirilemez. Ancak, bir sözleşme içinde sabitlerin değerleri değiştirilebilir ve bu durumda sabitlerin güvenliği korunamaz. Bu nedenle, sabitlerin değerlerini değiştirme işlemlerine izin verilmemesi gerektiği düşünülebilir.

Alternatf Akıllı Sözleşme Örneği

pragma solidity ^0.8.0;

contract Constants {
    // coding convention to uppercase constant variables
    address public readonly MY_ADDRESS = 0x777788889999AaAAbBbbCcccddDdeeeEfFFfCcCc;
    uint public readonly MY_UINT = 123;
}

Bu örnekte, “MY_ADDRESS” ve “MY_UINT” sabitleri “readonly” anahtar kelimesiyle tanımlanmıştır. Bu anahtar kelime, bu sabitlerin sadece “view” ve “pure” işlevler tarafından okunabileceğini belirtir. Bu, bu sabitlerin değiştirilemeyeceğini gösterir ve bu nedenle “constant” anahtar kelimesi kullanılmamıştır.

Bu örnekte, “public” anahtar kelimesi de kullanılmıştır. Bu anahtar kelime, bu sabitlerin sözleşme dışından da okunabileceğini belirtir. Bu, bu sabitlerin bir “view” işlevi tarafından okunabileceği anlamına gelir.

Bu örnek sözleşme, yukarıdaki örnek sözleşmenin aynı güvenlik özelliklerini taşır. Ancak, “readonly” anahtar kelimesinin kullanılması nedeniyle “constant” anahtar kelimesine gerek kalmamıştır. Bu, sözleşmenin daha kısa ve okunabilir hale getirilmiştir.

Sonuç Bağlamı : Solidity Dilinde Değiştirilemeyen Değişkenler

Özet olarak, Solidity dilinde sabitler ve değişkenler iki farklı tür değişkendir. Sabitler, program sırasında değeri değiştirilemeyen ve sadece “payable” olmayan işlevlerde kullanılabilen değişkenlerdir. Değişkenler ise program sırasında değeri değiştirilebilen ve herhangi bir işlevde kullanılabilen değişkenlerdir. Sabitler, bir sözleşmenin bir niteliği olarak tanımlanabilir veya işlevler içinde tanımlanabilir. Değişkenler ise sadece işlevler içinde tanımlanabilir. Sabitler ve değişkenler, özel durumlarda kullanışlıdır ve her ikisi de Solidity dilinde kullanımı birbirlerinden farklıdır.

Solidity Programlama Dili Öğrenme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Gelin aklınızdaki soruları SUPERPEER sohbetinde cevaplayalım.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

solidity101 - Solidity, 2015 yılında Christian Reitwiessner liderliğinde piyasaya sürülen, büyük harf kullanımına göre ikinci en büyük kripto para piyasası olan Ethereum tarafından oluşturulan yepyeni bir programlama dilidir.

Yazarın Profili

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir