solidity study -crypto zombie 레슨 1
솔리디티 시작시 항상 입력해야 하는 것이 있다.
1. 프라그마 솔리디티 버젼;
2. 계약 이름
pragma solidity >=0.5.0<0.6.0; // 솔리디티 버젼 contract HelloWorld{ } // 계약 이름
uint
부호 없는 정수.
값이 음수면 안됨.
좀비 DNA 설정하기.
pragma solidity >=0.5.0 <0.6.0; contract ZombieFactory { uint dnaDigits = 16; //start here}
복잡한 데이터 유형.
여러 속성이 있는 복잡한 데이터 형식 만들 수 있다.
마치 자바에서 배운 객체와 같은 느낌인듯.
string : 문자열 유형을 나타냄
pragma solidity >=0.5.0 <0.6.0; contract ZombieFactory { uint dnaDigits = 16; uint dnaModulus = 10 ** dnaDigits; struct Zombie { string name; uint dna; } // start here }
<함수>
함수 선언하는 방법
함수의 인자는 언더바로 시작하는 것이 관례이다.
ex)
function eatHamburgers(string//문자열 형태임을 알려줌 memory_name//name 변수가 memory에 저장됨, uint_amount//정수 형태임을 알려줌)public//가시성 {//여기에는 함수 실행 내용 들어감}
string memory_name 에서
궁금한 점. name이라는 변수를 memory라는 곳에 저장된다 이렇게 이해하는게 맞나?
함수에 인수를 전달하는 법
- 값으로 전달하기. 인수값의 복사본을 전달 하는 것. 원본이 변경되지 않고 수정됨
- 참조에 의해 전달하기. 참조값이 변경되면 원래 변수의 값도 변경됨.
struct 생성
struct Person { uint age; string name; } Person[] public people;
여기서 질문. Person[] public people; 이코드는 무엇을 의미하는가?
앞서 만든 struct를 생성하기
Person satoshi = Person(172,"Satoshi); //이 사람을 배열에 추가. people.push(satoshi); //파이썬에서 append와 같은 개념으로 push 명령어 사용.
//createzombie함수 만들기 내부 코드
zombies.push(Zombie(_name,_dna));
함수는 기본적으로 public으로 선언. 즉 공개됨
private으로 선언하면 비공개 가능
private 키워드는 함수명 뒤에 적고, 주로 언더바 로 시작함
uint[] numbers; function _addToArray(uint _number) private { numbers.push(_number); }
여기서 uint[] numbers는 어떤 의미?
반환값
자료형을 변수 앞에 사용하는 거 같아
값을 반환 받으려면,
string greeting = 'whats up'; function Hello()public **returns(string)**// 반환값 종류를 포함{return greeting; }
함수 제어자
view 함수로 선언
function sayHello() public view returns(string){}
데이터를 변경하지 않고 보기만 한다는 뜻
pure함수로 선언
function _multiply(uint a,uint b)private pure returns(uint){ return a*b;}
반환값이 인자에 따라 달라진다. 다만 앱에서 어떤 데이터도 접근하지 않는다.
함수의 반환값이 랜덤이기를 원한다면;
keccak256을 사용. 스트링변화 시켜 완전히 다ㅣ른 해시값 생성.
형변환
uint a를 uint8 a로 변환하려면
uint8(a)로 나타내면 된다
띄어쓰기가 좀 중요한가봐
이벤트
특정 액션이 발생했을 때 행동을 취한다.
//이벤트 선언 event IntegersAdded(uint x, uint y, uint result); funciton add(uint_x,uint_y) public{ uint result =_x+_y;
이벤트를 실행하면 add함수가 실행되면 알린다.
IntegersAdded(_x,_y,result); return result;
Author And Source
이 문제에 관하여(solidity study -crypto zombie 레슨 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jacob0323/solidity-study-crypto-zombie저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)