=================================================================
솔리디티 변수
javascript의 변수 선언은 변수가 변하는지, 변하지 않을건지의 설정 정도만 가능하다(let, const);
솔리디티 언어는 앞으로 들어갈 변수의 data type부터 선언한뒤 변수를 선언한다.
작성 방식 :
데이터 타입 [변수명] = [값];
예) uint numbers = 1;
>> int 타입의 numbers라는 변수 그 안에 담긴 값은 1
string name = "heini";
>>string 타입의 name이라는 변수 그 안에 담긴 값은 heini
data type의 종류 : string, uint, int,...etc
* 여기서 uint는 int랑 같은 뜻
=================================================================
솔리디티 배열
정적배열 : 배열의 종개수를 정해줌
작성 방식 :
데이터타입[숫자] = 변수명;
예 ) string[5] = nameArr;
>> string타입의 데이터가 5개 들어가는 nameArr라는 이름의 배열
>> ["","","","",""] 과 같음
동적배열 : 배열이 무제한으로 늘어날 수 있음
작성 방식 :
데이터타입[] = 변수명;
예 ) int[] =numArr;
>> int 타입의 데이터가 무제한으로 들어가는 numArr라는 이름의 배열
public, private : 현재 코드를 다른 곳에서 사용할 수 있는가 없는가를 결정해줌.
{ 구조체 배열 }
예를 들어 test라는 구조체가 있다고 보자
struct test{
string title;
uint num;
}
구조체 안에는 데이터타입이 스트링인 title이라는 변수가 있고
타입이 int(숫자인) num이라는 변수가 있다.
이 구조체를 사용하여 배열의 format을 만들어주는 걸로 이해했다.
사용하려면
구조체이름[] 배열이름
으로 선언하면 된다.
위의 test 구조체 format으로 arrName이라는 배열을 만들어주겠다.
test[] arrName;
여기에 위의 숫자나 public,private을 사용하여 정적배열로 만들거나 옵션을 추가할 수 있다.
그럼 이렇게 구조체로 format이 정해진 배열에는 어떻게 값을 넣을까?
만약 push를 써서 값을 넣는다고 한다면
배열이름.push(구조체이름(인자값))
이렇게 들어가야한다. 물론 datatype값과 일치하는 값을 넣어야한다.
arrName.push(test("heini",1));
=================================================================
솔리디티 함수
솔리디티의 함수선언을 할때도 들어가는 인자값의 타입을 정하고 선언해야한다.
또한 인자값을 선언할때 이 code block안에서만 사용한다는 의미로 언더스코어(_)를 넣어줘야한다. 자바스크립트로 치자면 let.
예를 들어 test라는 함수를 만들때 문자를 받은 title이라는 인자값과 숫자를 받을 num이라는 인자값을 넣어 변수를 선언해 보겠다.
function test(string _title, string _num){
}
이렇게 선언된 함수는 기본적으로 Public함수이다.
만약 private 함수를 만들고 싶다면 이 콘트렉트 안에서만 함수를 사용한다는 뜻이기 때문데 함수명앞에 언더스코어를 붙여주고 인자값뒤에 private을 추가해야한다.
function _test(string _title, string _num) private{
}
=================================================================
내가 만든 랜덤 좀비 생성기
https://share.cryptozombies.io/ko/lesson/1/share/new
제 크립토좀비 OGURL을/를 확인해 보세요!
제가 방금 전에 크립토좀비 레슨 1을 마쳤어요. 이더리움 게임을 만드는 기본 내용을 배웠어요. 제가 처음 만든 좀비를 한번 보세요!
share.cryptozombies.io
'Solidity' 카테고리의 다른 글
[크립토 좀비] 솔리디티 openzeppelin (0) | 2021.11.30 |
---|---|
[ 솔리디티 이더리움, 크립토좀비 ] 컨트렉스 상호작용, 인터페이스 (0) | 2021.10.11 |
솔리디티 크립토좀비 푸는 중 (0) | 2021.10.09 |
[ 솔리디티 이더리움 , 크립토좀비 ] requirea문 (0) | 2021.10.08 |
[ 솔리디티 이더리움 , 크립토좀비 ] mapping (0) | 2021.10.08 |