Menu
Coddy logo textTech

Dinamik Bellek Dizileri

Coddy'nin Solidity Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 37 / 53.

Çalışma zamanında seçilen bir uzunluğa sahip bir diziyi bellekte ayırmak için new uint256[](length) kullanın. Öğeleri sıfırdan başlar. Tür boş köşeli parantezler kullansa da ayrılan bellek dizisi push veya pop ile yeniden boyutlandırılamaz.

Bu alıntıdaki ifadeler, sağlanan main işlevinin içinde çalışır.

uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);

Dizinin üç yuvası vardır ve yalnızca ortadaki yuvaya değer atanmıştır. İlk öğesi sıfır olarak kalır. length özelliği, son öğenin değerini değil, kaç öğenin bulunduğunu bildirir.

Yeni ayrılmış bir uint256 bellek dizisi, sıfır değerli öğelerle başlar.

challenge icon

Görev

Kolay

n uzunluğunda bir bellek dizisi ayırın, son öğesini marker olarak ayarlayın, ardından uzunluğunu ve son öğesini yazdırın. n, 1 ile 8 arasındadır.

Testler, main işlevine bağımsız değişkenleri şu sırayla iletir: uint256 n, uint256 marker. Her test, yeni bir sözleşme durumuyla başlar.

İstenen çıktıyı almak için console.log kullanın. Yalnızca istenen değerleri, her satıra bir tane gelecek şekilde yazdırın; görev bunları belirtmediği sürece ek etiket kullanmayın.

Kendin dene

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 n, uint256 marker) external view {
        // Çözümünüzü buraya yazın.
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Solidity playground