timezone |
---|
Asia/Taipei |
-
大約十年安卓開發。想學合約很久了,有很多問題想問。側鏈和L2的差異。OP Stack為什麼那麼快就可以建一條新鏈。POS的安全性如何保證,是靠質押越多越安全?僅剩少數質押者是不是也不去中心。
-
你认为你会完成本次残酷学习吗? 應該會
學習內容: 報名
學習內容: 使用Remix, 跑Hellow,word。 ps.每按一次deploy 按鈕,會部署一次合約
認識一些value type,變數宣告時先型態,再public
function的結構
function有三種權限,pure, view, payable
payable或不指定要花 gas
pure, view不花 gas
// 命名式返回 function returnNamed() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){ _number = 2; _bool = false; _array = [uint256(3),2,1]; }
// 命名式返回 function returnNamed2() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){ return( 2, false, [uint256(3),2,1]); }
但修飾詞memory要到下一課才有解釋。
array和 struct 需要的儲存空間比較大故需指定類型, storage在鏈上, memory和 calldata在 local,比較省gas. 今天首次操作debug, 原來要是live debug,要按 forward才會變動
array和struct的使用,先看快速掃過。 array型態在第一個元素宣告即可。如果使用memory則是固定長度。
mapping可以認知為dictionary, key-value pair key只允許內建型態,value可以使用自定義struct
變數的初始值,delete操作符可以讓變數恢復初始值。
設置常數有兩種 constant, immutable,immutable可以在 constructor才指定。 指定常數可以省gas。 string和 bytes不能用 immutable修飾。
string public immutable _string = "Hello Web3! 0923-2"; => X TypeError: Immutable variables cannot have a non-value type.
solidity版的 insert sort的眉角是 uint,也就是正整数,取到负值的话,会报underflow错误。而在插入算法中,变量j有可能会取到-1,引起报错。
學習 constructor,和修飾function的修飾器, 可以自定義修飾器
將101完結,且做考題。 interface那邊,對於選擇器怎麼理解比較好,就是一個指標,給呼叫者指過去?
WTF solidity 102開始
1.solidity的function可以overloading, 目前自己尚未有應用的實例 2.使用 library有兩種, 一種是 using A for B, 將B擴展功能.Kotlin也有這樣的功能. 另一種是直接使用,例如 String.toHexString().
先記錄補充教材 來自SunSec整理 DEV - Learning Solidity, Blockchain, DeFi https://github.com/Cyfrin/foundry-full-course-f23 https://www.levelupweb3.xyz/solidity https://github.com/ethereumbook/ethereumbook https://cryptozombies.io/ https://solidity-by-example.org/ https://github.com/OffcierCia/DeFi-Developer-Road-Map https://github.com/LearnWeb3DAO/14-Days-of-Solidity https://github.com/0xronin/30-days-SmartContractProgrammer https://github.com/OffcierCia/DeFi-Developer-Road-Map https://www.youtube.com/watch?v=hMwdd664_iw&list=PLO5VPQH6OWdULDcret0S0EYQ7YcKzrigz https://www.youtube.com/watch?v=M576WGiDBdQ https://www.youtube.com/watch?v=wXo3S8k1ueg&list=PLgPmWS2dQHW9u6IXZq5t5GMQTpW7JL33i https://www.youtube.com/playlist?list=PLFcDwmPMBkzu5xMbFh3Vi1COI3bAoBaSI
import和 receive