견고함의 데이터 구조

You can read about basics of solidity like variables and different keywords, here 👇

Basic of Solidity (PART 2)



갑시다,



💜 데이터 구조는 단순히 데이터를 저장하는 구조이므로 특정 메서드를 구현할 수 있습니다. 이렇게 하면 시간과 경우에 따라 메모리가 절약됩니다.

💜 모든 데이터 구조에는 트레이드 오프와 적절한 사용이 있습니다. 따라서 시나리오에 따라 한 데이터 구조가 다른 데이터 구조보다 더 잘 작동할 수 있습니다.

💜 배열
  • 배열은 인접한 메모리 위치에 저장된 동일한 데이터 유형의 항목 모음입니다.
  • 이렇게 하면 기본 값, 즉 배열의 첫 번째 요소(일반적으로 배열 이름으로 표시됨)의 메모리 위치에 오프셋을 추가하여 각 요소의 위치를 ​​쉽게 계산할 수 있습니다. 기준 값은 인덱스 0이고 두 인덱스의 차이가 오프셋입니다.

  • 고정 배열

    <DATA TYPE> <ACCESS MODIFIER> <NAME>
    
    uint[10] public balance; // This would create size of 10 indexes, If we try to store more it would fail.
    
    address[200] private address_arr; // This would create size of 200 indexes, If we try to store more it would fail.
    


    배열에 값 저장

    balance[0] = 200; // Stores value at index 0. 
    balance[1] = 203; // Stores value at index 1.
    
    


    👉 기억하세요. 배열 인덱스는 0부터 시작합니다. 따라서 10 크기 배열은 0에서 9까지의 인덱스를 가집니다.

    동적 배열

    <DATA TYPE> <ACCESS MODIFIER> <NAME>
    
    uint[] public balance; // This would create a dynamic size array, will increase the size as per need.
    
    address[] private address_arr; 
    
    


    👉 필요할 때만 동적 배열을 사용하는 것이 좋습니다.
    👉EVM은 개발자가 코드를 최대한 최적화하도록 강제하는 몇 가지 제약 조건을 구현합니다.

    배열의 값에 액세스

    <DATA TYPE> <ACCESS MODIFIER> <NAME>
    
    uint[10] public balance; // This would create a dynamic size array, will increase the size as per need.
    
    🍏 public_balance[8]; //This would give the value stored at 8th position in the array.
    ⛔ public_balance[10]; // This would give error as index are from 0 to 9;
    
    address[] private address_arr; 
    
    


    💜 매핑
  • 매핑은 키와 값 쌍이 있는 사전과 같습니다.
  • 시스템에 키를 제공하기만 하면 시스템이 쌍을 이룬 값을 반환합니다.

  • 매핑

    mapping(<DATA TYPE> => <DATA TYPE>) <ACCESS MODIFIER> <NAME>
    
    mapping(string=>uint256) public balance; // This would require a key of string and values of uint256
    
    mapping(address=>uint256) public balance2; // This would require an address as key and values of uint256
    
    


    👉 키는 고유해야 하며 그렇지 않으면 키에 해당하는 이전에 저장된 값을 덮어씁니다.

    매핑에 값 저장

    balance["abc"] = 26;
    balance2[0x.....] = 92;
    
    


    접근 중

    balance["abc"]; //This would give result as 26.
    balance2[0x....]; // This would give result as 92.
    


    💜 구조
  • Struct는 서로 다른 데이터 변수의 사용을 결합해야 할 때 사용됩니다. 하나의 변수가 uint, string, int 등을 저장하는 것처럼
  • 필요에 따라 만들고 사용할 수 있는 사용자 지정 변수와 같습니다. 이들은 또한 기능을 자체적으로 저장할 수 있습니다.

  • 구조

    Struct <NAME>{ <DATA TYPE> <NAME> }
    
    Struct People {
      uint256 number;
      String name;
    }
    
    


    정의

    <STRUCT NAME> <ACCESS MODIFIER> <NAME> = <STRUCT NAME> ({..provide details of variable as shown...acts as a constructor})
    People public people1 = People ({number:5, name:"Tanisk"});
    People public people2 = People ({number:92, name:"Sharma"});
    


    IT 사용

    <NAME>.<VARIABLE IN STRUCT>
    people1.name;
    


    👉 더 많은 데이터 구조가 있지만 광범위하게 사용되므로 스마트 계약 작성에 충분합니다.
    👉 더 많은 것이 있지만 향후 기사에서 배울 수 있습니다.

    그게 다야.

    다음 기사에서는 EVM의 몇 가지 뉘앙스와 EVM에서 메모리를 처리하는 방법을 살펴보겠습니다.

    Hello, I am Tanisk Annpurna

    I post about

    🚀web3, Blockchain, Ethereum

    🐦Smart Contract, Solidity

    🎉JavaScript, ReactJS, NodeJS

    Follow and like for more such posts. !!✌️!!

    좋은 웹페이지 즐겨찾기