初级到中级智能合约
9527机器猫
这个作者很懒,什么都没留下…
展开
-
省 gas 的招数:结构封装 (Struct packing)
中的时候,尽量使用最小的整数子类型以节约空间。并且把同样类型的变量放一起(即在 struct 中将把变量按照类型依次放置),这样 Solidity 可以将存储空间最小化。的大小,Solidity 为它保留256位的存储空间。打包在一起,从而占用较少的存储空间。前者比后者需要的gas更少,因为前者把。, Solidity 会将这些。通常情况下我们不会考虑使用。)不会为你节省任何 gas。变种,因为无论如何定义。,则尽可能使用较小的。原创 2023-05-30 21:06:44 · 99 阅读 · 1 评论 -
internal 和 external
类似,不过, 如果某个合约继承自其父合约,这个合约即可以访问父合约中定义的“内部”函数。(嘿,这听起来正是我们想要的那样!类似,只不过这些函数只能在合约之外调用 - 它们不能被合约内的其他函数调用。稍后我们将讨论什么时候使用。原创 2023-05-16 23:42:23 · 226 阅读 · 0 评论 -
Storage与Memory
状态变量(在函数之外声明的变量)默认为“存储”形式,并永久写入区块链;而在函数内部声明的变量是“内存”型的,它们函数调用结束后消失。变量则是临时的,当外部函数对某合约调用完成时,内存型变量即被移除。你可以把它想象成存储在你电脑的硬盘或是RAM中数据的关系。,并且当你不得不使用到这些关键字的时候,Solidity 编译器也发警示提醒你的。如果你还没有完全理解究竟应该使用哪一个,也不用担心 —— 我将告诉你何时使用。然而也有一些情况下,你需要手动声明存储类型,主要用于处理函数内的。原创 2023-05-16 05:54:09 · 111 阅读 · 0 评论