Study/Solidity
solidity 기초(2)
uooy
2021. 8. 29. 17:17
1. 함수 선언
function eatHamburgers(string _name, uint _amount) {
}
parameter명은 _를 붙이는 것이 관습
2. public / private
solidity에서 함수는 기본적으로 public으로 선언됨.
다만 함수는 기본적으로 private로 선언하고 공개할 수 있는 함수만 public으로 선언할 것.
uint[] numbers;
function _addToArray(uint _number) private {
numbers.push(_number);
}
3. 함수의 반환값 타입 지정
string greeting = "What's up dog";
function sayHello() public returns (string) {
return greeting;
}
4. 함수 제어자 ( view / pure)
- view : 함수가 데이터를 보기만하고 변경하지 않을 때 사용
function sayHello() public view returns (string) {
- pure : 함수가 앱에서 어떤 데이터도 접근하지 않을 때 사용
function _multiply(uint a, uint b) private pure returns (uint) {
return a * b;
}
5. Keccak256
*이더리움은 기본적으로 sha3의 한 버전인 keccak256함수를 내장 해시 함수로 가지고 있는다.
입력값을 string 타입으로 받으며 이를 16진수 해시값으로 매핑하여 출력함
//6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5
keccak256("aaaab");
//b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9
keccak256("aaaac");
6. 이벤트
- 컨트랙트가 블록체인상에서 앱의 사용자 단에서 무언가 액션이 발생했을 때 의사소통 하는 방법
event IntegersAdded(uint x, uint y, uint result);
function add(uint _x, uint _y) public {
uint result = _x + _y;
// 이벤트를 실행하여 앱에게 add 함수가 실행되었음을 알린다:
IntegersAdded(_x, _y, result);
return result;
}
//앱단
YourContract.IntegersAdded(function(error, result) {
// 결과와 관련된 행동을 취한다
})