본문 바로가기

솔리디티/크립토좀비17

레슨1 챕터9 - 함수 접근 제어자 (private, pubilc, internal, external) 함수에 private 이나 public을 붙임에 따라 함수 사용(접근)에 제한을 줄 수 있다. 기본적으로 아무것도 안쓰면 public이다 public 다른 컨트랙트에서도 호출할 수 있게 된다 private 해당 함수가 속해있는 컨트랙트에서만 호출할 수 있고 다른 컨트랙트에서는 사용할 수 없다. internal 해당 함수가 속한 컨트랙트와 해당 컨트랙트를 상속받는 컨트랙트에서만 사용할 수 있고 그외의 상속받지 않은 다른 컨트랙트에서는 사용할 수 없다. external 함수가 있는 컨트랙트 내부에서는 사용할 수 없고 다른 컨트랙트에서만 사용할 수 있다. 답 기존 함수 function createZombie(string _name, uint _dna) { zombies.push(Zombie(_name, _dn.. 2022. 2. 10.
레슨1 챕터7, 8 - 함수선언, 구조체와 배열 활용 함수선언은 JS와 같은 형식이다 function 함수이름(매개변수) { 무엇을 무엇을 실행할까 적당히 이것을 실행하죠 } 배열에 무언가를 추가하는 방식도 JS와 동일하다 string[] 나는야배열; 나는야배열.push("ㅎㅎ"); 나는야배열.push("깔깔깔"); // 나는야배열의 내용물은 ["ㅎㅎ", "깔깔깔"] 배열을 선언할 때 지정한 자료형(타입)과 들어갈 내용물이 알맞으면 배열에 넣을 수 있음 struct 야채 { string 야채이름; uint 비타민함량; } 야채[] 야채목록; 야채목록.push(야채("감자", 0)); // 또는 야채 고구마 = 야채("고구마", 0); 야채목록.push(고구마) 이와 같이 배열에 구조체를 넣을 수 있다 챕터7 답 // 이름과 DNA를 매개변수(인자)로 받는 .. 2022. 2. 10.
레슨1 챕터5, 6 - 구조체, 배열 구조체 아래처럼 구조체 이름과 안에 들어갈 변수를 선언해준다 struct 닝겐 { uint 나이; string 이름; } struct Person { uint age; string name; } 구조체를 이용하여 변수나 배열을 만들 수 있다. // 나이는 133세, 이름은 '김첨지' 라는 Person구조체 형태의 김첨지라는 변수 생성 Person 김첨지 = Person(133, "김첨지") 이러한 구조체를 가지고 배열로 활용할 것임. 배열 uint[2] fixedArray; // 2개까지 담을 수 있는 정적배열 string[5] public stringArray; // 5개까지 담을 수 있는 public 정적배열 uint[] dynamicArray; // 계속 담을 수 있는 동적배열 상태변수가 블록체인에.. 2022. 2. 10.
레슨1 챕터3 - 상태변수, 정수 상태변수 상태변수는 컨트랙트 안에서 영구적으로 저장된다. 이는 이더리움 블록체인에 기록될 것이다. DB에 데이터를 쓰는것과 같다고 한다. 변수나 함수를 선언할 때 어떤 자료형(타입)이 쓰일것인지 명시해야한다 부호없는 정수(uint) 음수는 사용할 수 없음. uint256으로 256비트의 부호없는 정수이나 생략된것. uint8, uint16, uint32... 등이 있으나 특수한 경우가 아니면 주로 uint를 사용한다. 문자열(string) 말그대로 문자열이 담길 자료형 string 나는문자열 = "깔깔깔"; string Hello = "Kitty"; 답 // uint256 타입의 dnaDigits변수에 16을 저장 uint dnaDigits = 16; 2022. 2. 10.