Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 3.23 KB

k66inthesky.md

File metadata and controls

90 lines (67 loc) · 3.23 KB
timezone
Asia/Shanghai (UTC+8)

k66inthesky

  1. Hi我是k66,這是我第一次參加殘酷共學,一起衝鴨🦆

  2. 你认为你会完成本次残酷学习吗?我會努力完成!

Notes

2024.09.23

學習內容: Hello Web3: 本堂課第一支程式

  • Solidity: 用於EVM的程式語言
  • Remix: Solidity的IDE
  • Solidity程式架構: 1.註解Licence2.Solidity版本號3.contract相當於main

以下是實際寫碼+編譯過程:

1.遇到錯誤->請AI提示->原本要照AI(左下角有RemixAI)提供的程式碼做(螢光綠處)->但發現錯誤其實來自少一字母r於是選擇不照AI的建議而是修正typo 2.編譯成功後,出現這些檔案(紅括號處) 3.部屬合約前發現設定檔預設和教程有些不同(比如教程VM分支是merge但目前預設是坎昆) 4.順便查了除了坎昆,也支援L2的Optimism和Arbitrum

2024.09.24

學習內容: 2.ValueTypes

  • 三種類型:Value Type, Reference Type, Mapping Type
  • 與C語言寫法不同的是int寫在public前,如int public _int = -1;
  • 常見Value type: bool, int, uint, uint256, address, address payable, bytes(可變), bytes1, bytes8, bytes32, enum

2024.09.25

學習內容: 3.function

這集對我來說單看有點難理解(碧琪公主那我看不懂), 看這篇才懂pureview是為取代constant(到v0.4.17才取代)。 此外internalexternal蠻好懂。

2024.09.26

學習內容: 4.Return

returnsreturns,後者和其他程式語言類似,前者跟在函數名後面。 特別的寫法,解構式賦值: (, _bool2, ) = returnNamed();

2024.09.27

學習內容: 5.Data Storage

引用類型: array, struct 數據位置(與一般程式不同): storage, memory, calldatastorage消耗gas較多,且合約裡默認是storagememorycalldata只存內存但不上鏈, calldatememory不同的是其immutable特性。 作用域: state variable, local variable, global variable。 乙太單位: wei(1), gwei(1e9), ether(1e18) 時間: 可以規定一個操作須在指定時間內完成。

  • 心得: 這章和gas和省空間(是否上鏈)息息相關,若未來寫合約時產生不必要的gas浪費,可回頭看這章找靈感。

2024.09.28

學習內容: 6.Array and Struct

array: T[k], T[], bytes, bytes1, bytesbytes1省gas。 push(), ,push(x), pop()

struct先創建後賦值: 
struct Student{
   uint256 id;
   uint256 score;
}
function initStu() external {
   _stu = Student(3,90);
}

2024.09.29

學習內容: 7.Mapping

  • key-value寫法
mapping(uint => address) public i2addr;
  • 心得: 這章有講到mapping規則和原理但我對其沒感覺,之後再回頭看。