class3_string

개굴·2023년 5월 14일
0
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.18;

contract String {
    uint a;
    string b; 
    
    function setA(uint _a) public {
        a = _a;
    }
    function getA() public view returns (uint){
        return a;
    }

    function setB(string memory _b) public  {
        b = _b;
    }

//스트링은 정확히 어디에 있는지 알려줘
//스토리지(상태변수), 메모리, 콜데이터
//지역변수 스트링 일 시 : 메모리랑 콜데이터 중 어디 저장하고 어떻게 불려올지 명확하게 
//스트링은 일종의 어레이 
//TypeError: Data location can only be specified for array, struct or mapping types, but "memory" was given.
    function getB() public view returns (string memory){
        return b;
    }
//b를 abc로 만드는 함수를 구현하세요
    function setBasAbc() public {
        b = "abc";
    }
    function setBasAbcBig() public {
        b = "ABC";
    }

    //아스키 코드(문자)-> 대문자 소문자 다르게 저장   16진수 63,43  저장 
    function setAB(uint _a,string memory _b) public {
       a = _a;
       b = _b;
    }
    function getAB() public view returns (uint, string memory){
        return (a,b);
    }

//스트링은 무거워
//call 휘발성  -> call 
//메모리 call을 복사해서 사용
//array , 특수 경우 string, bytes
//메모리 call을 복사해서 사용
    
}

0개의 댓글