[TIL] 2023-05-11 DAY38
GIT 주소 : https://github.com/dowoo303/SOLIDITY
오늘 배운것들
- 저번시간 복습
1) mapping -> 시험연습- 테스트 1
각종 팁
- 상태변수를 덜 쓸수록 가스비 낭비가 줄어든다.
회고
- 새로배운 개념들(mapping)의 활용법을 잘 모르고 있는 것 같다 -> 역할을 제대로 파악하기
- 시간 있을때 SEC, CFTC 관련 뉴스 쳐다보기.
처음 문제를 보고 어떤 자료형을 써야되고 분류해야하는지 생각해야함.
1. 학생의 정보를 넣을 수 있는 구조체
2. 학생들의 정보를 모두 넣을 배열
3. mapping
*보충반 조회 기능 - F 학점을 받은 학생들의 숫자와 그 전체 정보를 반환
4. 지역변수
5. new: 동적 변수를 일단 자릿수를 설정은 해주지만 나중에 변경도 가능하게 만들어준다.
6. revert: 오류가 났을 때 원 상태로 되돌리는 함수
if (keccak256(bytes("string")) == keccak256(bytes("string))) { ... }
-> keccak256은 동적변수를 받을 수 없지만 bytes만은 가능하다.
contract String_Compare {
// encodePacked
function keccak1(string memory s1) public pure returns(bytes32) {
return keccak256(abi.encodePacked(s1));
}
function keccak2(string memory s1) public pure returns(bytes32) {
return keccak256(bytes(s1));
}
// 문자열 비교방법
function compare1(string memory s1, string memory s2) public pure returns(bool) {
return keccak256(bytes(s1)) == keccak256(bytes(s2));
}
// encodePacked 한 것도 자료형이 bytes임
function compare2(string memory s1) public pure returns(bytes memory, bytes memory) {
return (abi.encodePacked(s1), bytes(s1));
}
}