[TIL] Part2 - DAY33 Solidity 코딩

박동우·2023년 5월 3일

블록체인 스쿨 3기

목록 보기
31/72

[TIL] 2023-05-03 DAY33


Solidity 코딩


오늘 배운것들

  1. 저번시간 복습(간단한 계산기 코드 짜보기)
  2. 숫자형 변수, 문자형 변수

각종 팁

회고

  1. 문제예시: 2개의 Input값을 가지고 1개의 output값을 가지는 4개의 함수를 만드시오. 각각의 함수는 더하기, 빼기, 곱하기, 나누기(몫과 나머지 반환)를 실행합니다.




💻 Solidity 코딩

✔ write -> public: 체인에 write해서 정보를 바꿈(유료) - Storage
✔ read -> view: read만 하는애들(무료) - Memory
✔ x -> pure: read 조차 안하는 애들(무료) - Calldata


✅ 문자형

상태변수들은 스토리지에 저장되는데 블록체인에서 스토리지는 블록을 뜻한다.

-> 함수에서 지역변수 문자형을 받으려면 memory나 calldata를 넣어줘야한다.


🟥 코드

// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.18;

/*
실습 가이드
1. 0x16을 넣고 setA 실행하기
2. getA -> 0x16 결과 확인
3. setA2 
4. getA -> 0x3136 결과 확인 
5. abc를 넣고 setA3 실행하기
6. getA -> 0x616263 결과 확인
*/

contract BYTES {
    bytes a;

    function setA(bytes memory _a) public {
        a = _a;
    }

    function setA2() public {
        a = "16"; 	 // 문자열이기 때문에 아스키코드로 출력 -> 0x3136
    }

    function setA3(string memory _a) public {
        a = bytes(_a);
    }

    function getA() public view returns(bytes memory) {
        return a;	 // 결과값이 16진수 인 것 확인
    }
    
    
    // 퀴즈: 입력한 수의 제곱을 반환해주는 함수를 구현하세요.
    function wprhq(uint b) public pure returns(uint) {
        return b**2;
    }
}

초기 init을 할 때 어떤 자료형을 갖고 있는지 확인하는 것 중요하다.
상태변수를 변화시키는 것은 무겁고 가격이 비쌈(public)
상태변수를 변화시키지 않는 함수는 상대적으로 가격이 싼 view, pure를 사용.

... 팀 빌딩 시간

profile
HELLO!

0개의 댓글