1. Anasayfa
  2. 100 Günde Solidity

🧵 #100GündeSolidity 038 : Import İşlemleri

🧵 #100GündeSolidity 038 : Import İşlemleri
Import İşlemleri
0

Import İşlemleri : Dosya İçe Aktarma İşlemleri

Solidity, Ethereum ağı için akıllı sözleşmeler yazmak için kullanılan bir programlama dilidir. Solidity’de, farklı dosyaları birbirine bağlamak ve kodu daha modüler hale getirmek için “import” ifadesi kullanılır. Bu ifade, hem yerel hem de harici dosyaları içe aktarmak için kullanılabilir. Bu e-bültenimizde, Solidity’de dosya içe aktarma işlemleri hakkında ayrıntılı bilgi vereceğiz.

Solidity’de “Import” Nedir?

Solidity’de “import”, farklı Solidity dosyalarını birleştirmek için kullanılan bir ifadedir. Bu ifade, başka bir Solidity dosyasındaki değişkenleri, yapıları ve fonksiyonları geçerli dosyaya aktarmak için kullanılır. Bu, kodu daha modüler ve okunaklı hale getirir ve tekrar kullanılabilirliği arttırır.

Örneğin, bir sözleşmede kullanılan fonksiyonları ve değişkenleri başka bir Solidity dosyasına taşıyabilir ve sonra bu dosyayı ana sözleşmede içe aktarabilirsiniz. Böylece, her iki dosyayı ayrı ayrı çalıştırmak yerine, tek bir dosya gibi çalıştırabilirsiniz. Bu, kodu daha yönetilebilir hale getirir ve gereksiz kod tekrarını önler.

Solidity’de Dosya Yollarını Belirleme

Solidity’de “import” ifadesi kullanarak başka bir dosyayı içe aktarmak istediğinizde, bu dosyanın tam yolunu belirtmeniz gerekir. Dosya yolları, dosyanın nerede bulunduğunu gösteren bir dizedir. Solidity’de dosya yollarını belirlemek için aşağıdaki kuralları takip edebilirsiniz:

  • Yerel dosyaları içe aktarırken, dosya yolunu tam olarak belirtmelisiniz. Örneğin, eğer dosya aynı dizindeyse:
import "./DosyaAdi.sol";

Bu, aynı dizindeki “DosyaAdi.sol” dosyasını içe aktaracaktır.

  • Dosya yolunda geriye doğru gitmek isterseniz, önce “../” ile belirtilen bir üst klasöre çıkmanız gerekir. Örneğin:
import "../digerKlasor/DosyaAdi.sol";

Bu, “digerKlasor” adlı bir üst klasöre çıktıktan sonra “DosyaAdi.sol” dosyasını içe aktaracaktır.

  • Eğer harici bir kütüphane içe aktarmak isterseniz, bu kütüphane hakkında bilgi içeren URL’yi kullanabilirsiniz. Örneğin:
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

Bu, OpenZeppelin ERC20 kütüphanesinin kaynak kodunu içe aktaracaktır.

Solidity’de Local Dosyaları İçe Aktarma

Solidity’de yerel dosyaları içe aktarmak için, dosya yolunu belirleyerek “import” ifadesini kullanmanız gerekir. Yerel dosyalar, aynı proje klasöründe veya alt klasörlerde bulunan dosyalardır.

Örneğin, aşağıdaki Solidity dosyasında, başka bir Solidity dosyasını içe aktaracağız:

// DosyaAdi.sol

// Başka bir Solidity dosyasını içe aktar
import "./BaskaDosya.sol";

contract DosyaAdi {
  // BaskaDosya.sol dosyasındaki fonksiyonları kullanabilirsiniz.
}

Burada, “./” ile başlayan dosya yolunu belirttik, bu da aynı klasördeki “BaskaDosya.sol” dosyasını içe aktaracağımızı gösterir. İçe aktarılan dosyanın adı ve uzantısı (.sol) “import” ifadesinde belirtilmelidir.

Yerel dosyaları içe aktarırken, dosya adının yanına “.sol” eklemek isteğe bağlıdır. Dosya uzantısı genellikle Solidity dosyaları için .sol olarak kullanılır ve Solidity, .sol uzantılı dosyaları otomatik olarak tanır.

Solidity’de Dış Dosyaları İçe Aktarma

Solidity’de dış dosyaları içe aktarmak için, dosyanın URL’sini belirleyerek “import” ifadesini kullanmanız gerekir. Dış dosyalar, proje klasörü dışındaki dosyalardır ve genellikle bir kütüphane veya harici bir kaynak kod deposu gibi yerlerde bulunurlar.

Örneğin, aşağıdaki Solidity dosyasında, OpenZeppelin ERC20 kütüphanesini içe aktaracağız:

// DosyaAdi.sol

// OpenZeppelin ERC20 kütüphanesini içe aktar
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

contract DosyaAdi {
  // ERC20.sol dosyasındaki fonksiyonları kullanabilirsiniz.
}

Burada, “import” ifadesinde, dış dosyanın URL’sini belirledik. Solidity, bu URL’deki dosyayı indirip, onu ana sözleşme dosyasına ekleyecektir. Bu, dosya yolu belirleme yönteminden farklıdır ve dış dosyaların konumunu doğrudan belirtmek yerine, URL aracılığıyla dışarıdan erişilebilen kaynakları içe aktarmak için kullanılır.

Solidity’de Kütüphaneler ve İçe Aktarma Kullanımı

Solidity’de kütüphaneler, tekrar kullanılabilir kod parçalarıdır ve Solidity sözleşmelerindeki fonksiyonlara eklenebilir. Bu, Solidity kodunun yeniden kullanılabilirliğini artırır ve daha az kod yazmanızı sağlar.

Kütüphaneler, genellikle Solidity projesi içinde bir dosya olarak saklanır ve “import” ifadesi kullanılarak içe aktarılır. Kütüphaneler, birkaç dosyada kullanılabilen kod bloklarıdır. Kütüphaneler Solidity’de bir sözleşme olarak yazılır ve sonra diğer sözleşmelerde kullanılır.

Örneğin, aşağıdaki Solidity dosyasında, kütüphane kullanarak bir matematik işlevi tanımlayacağız ve ardından kütüphaneyi içe aktaracağız:

// Kütüphane.sol

library Matematik {
  function carpma(uint256 x, uint256 y) public pure returns (uint256) {
    return x * y;
  }
}

// DosyaAdi.sol

// Matematik kütüphanesini içe aktar
import "./Kutuphane.sol";

contract DosyaAdi {
  // Matematik kütüphanesindeki carpma fonksiyonunu kullan
  function carpma(uint256 x, uint256 y) public pure returns (uint256) {
    return Matematik.carpma(x, y);
  }
}

Burada, “Matematik” adlı bir kütüphane oluşturduk ve “carpma” adlı bir işlev ekledik. Daha sonra, “DosyaAdi.sol” dosyasında bu kütüphaneyi içe aktardık ve “carpma” işlevini kullandık. Bu, Solidity’de kütüphaneler ve içe aktarma kullanımının basit bir örneğidir.

Solidity’de Çoklu Dosya İçe Aktarma

Solidity’de çoklu dosya içe aktarma, bir sözleşmenin birden fazla dosyadan içe aktarılmasına izin verir. Bu, büyük Solidity projelerinde kod organizasyonunu kolaylaştırabilir ve yönetilebilirliği artırabilir.

Birden fazla dosya içe aktarmak için, her dosyayı ayrı ayrı içe aktarmak gerekir. Örneğin:

// DosyaAdi.sol

// Matematik kütüphanesini içe aktar
import "./Matematik.sol";

// Ücret kütüphanesini içe aktar
import "./Ucret.sol";

contract DosyaAdi {
  // Matematik kütüphanesindeki carpma fonksiyonunu kullan
  function carpma(uint256 x, uint256 y) public pure returns (uint256) {
    return Matematik.carpma(x, y);
  }

  // Ucret kütüphanesindeki hesaplama fonksiyonunu kullan
  function hesaplama(uint256 x, uint256 y) public pure returns (uint256) {
    return Ucret.hesaplama(x, y);
  }
}

Burada, “DosyaAdi.sol” dosyasında, “Matematik.sol” ve “Ucret.sol” adlı iki kütüphane dosyasını içe aktardık ve her birinden birer işlev kullandık. Bu, Solidity’de çoklu dosya içe aktarma kullanımının basit bir örneğidir.

Solidity’de İçe Aktarma Hataları ve Çözümleri

Solidity’de içe aktarma yaparken bazı hatalarla karşılaşabilirsiniz. Bu hataların en yaygın nedeni, dosya yollarının doğru şekilde belirtilmemesidir. İşte Solidity’de içe aktarma yaparken karşılaşabileceğiniz bazı hatalar ve çözümleri:

  1. “File not found” hatası: Bu hata, içe aktarmak istediğiniz dosyanın bulunamamasından kaynaklanır. Bu hatanın çözümü, dosya yolunun doğru şekilde belirtilmesidir.
  2. “ParserError: Source “DosyaYolu” not found” hatası: Bu hata, dosya yolunun doğru şekilde belirtilmediğini veya dosyanın var olmadığını gösterir. Bu hatanın çözümü, dosya yolunu kontrol etmektir.
  3. “Import cycle not allowed” hatası: Bu hata, iki veya daha fazla dosyanın birbirini içe aktarması nedeniyle oluşur. Bu hatanın çözümü, dosya yapılandırmasını değiştirmektir.
  4. “Multiple sources found for import” hatası: Bu hata, aynı dosyanın birden fazla yoldan içe aktarılmaya çalışıldığını gösterir. Bu hatanın çözümü, dosya yolunu değiştirmek veya yalnızca bir dosya yolunu kullanmaktır.
  5. “Invalid import path” hatası: Bu hata, dosya yolunun geçersiz olduğunu gösterir. Bu hatanın çözümü, doğru dosya yolunu belirlemektir.

Bu hataların çözümü, genellikle doğru dosya yollarının belirtilmesiyle ilgilidir. Dosya yollarının doğru belirtilmesi, Solidity dosyaları arasında doğru bir iletişim sağlayacaktır. Ayrıca, dosya yapılandırmasını da doğru şekilde düzenlemek önemlidir. Bu, dosyaların birbirini içe aktarması sırasında hataların önlenmesine yardımcı olacaktır.

SONUÇ BAĞLAMI

Solidity’de “import” yapmak, Solidity geliştiricilerinin kodlarını daha kolay yönetmelerine yardımcı olan bir özelliktir. Bu özellik, hem yerel dosyaları hem de harici dosyaları içe aktarmanıza olanak tanır. Ayrıca, Solidity’de kütüphaneleri ve birden fazla dosyayı içe aktarma konusunda da esnekliğe sahipsiniz.

Ancak, içe aktarma yaparken hatalarla karşılaşabilirsiniz. Bu hataların en yaygın nedeni, dosya yollarının doğru şekilde belirtilmemesidir. Bu nedenle, doğru dosya yollarının belirlenmesi ve dosya yapılandırmasının doğru bir şekilde düzenlenmesi önemlidir.

Solidity’de içe aktarma yapmak, kodların yeniden kullanılabilirliğini artırır ve kod yazımını daha kolay hale getirir. İçe aktarma yaparken hatalarla karşılaşabileceğiniz için, dosya yollarını doğru şekilde belirleyerek bu hataları önlemek için özen göstermelisiniz.

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
İlginizi Çekebilir

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