付费视频,请购买课程( ¥2,000.00 )后再观看

Solidity基础:合约类型与引用类型

13次播放
2026-05-14

视频 AI 总结:

视频围绕 Solidity 的 gas 机制与数据类型展开,重点解释了 view/pure 函数虽然不收取手续费(base fee 和 tips fee 为零),但本地执行仍需消耗计算 gas,并受 EVM gas 上限限制。随后系统介绍了地址类型、合约类型、枚举、值类型与引用类型(数组、结构体、映射)的用法,强调数据存储位置(memory/storage/calldata)的重要性。最后提醒开发者提前进行 gas 优化,避免因动态数组无限增长或不当操作导致合约失效。

关键信息:

  1. view/pure 函数不支付网络手续费,但本地计算仍消耗 gas,受 EVM 限制(约 2^24 单位)。
  2. 引用类型(数组、结构体)必须显式指定存储位置:状态变量默认 storage,参数默认 calldata,内部变量默认 memory
  3. 相同存储位置间赋值是引用,不同位置间赋值是拷贝(增加 gas 开销)。
  4. 数组操作是单向的(从末尾 push/pop),删除中间元素推荐交换到末尾再 pop,以减少 gas 消耗。
  5. 映射(mapping)只能作为状态变量,无法遍历,key 不能是复杂类型(数组等),但 string/bytes 可以。
  6. 结构体常作为 mapping 的 value,实现类似数据库表的功能;结构体内不应包含 mapping。
  7. 合约部署后不可修改,gas 优化必须在编码时前置考虑,避免循环依赖动态数组长度导致交易超出 gas 上限。