付费视频,请购买课程( ¥2,000.00 )后再观看
Solidity基础:合约类型与引用类型
13次播放
2026-05-14
视频 AI 总结:
视频围绕 Solidity 的 gas 机制与数据类型展开,重点解释了 view/pure 函数虽然不收取手续费(base fee 和 tips fee 为零),但本地执行仍需消耗计算 gas,并受 EVM gas 上限限制。随后系统介绍了地址类型、合约类型、枚举、值类型与引用类型(数组、结构体、映射)的用法,强调数据存储位置(memory/storage/calldata)的重要性。最后提醒开发者提前进行 gas 优化,避免因动态数组无限增长或不当操作导致合约失效。
关键信息:
view/pure函数不支付网络手续费,但本地计算仍消耗 gas,受 EVM 限制(约 2^24 单位)。- 引用类型(数组、结构体)必须显式指定存储位置:状态变量默认
storage,参数默认calldata,内部变量默认memory。 - 相同存储位置间赋值是引用,不同位置间赋值是拷贝(增加 gas 开销)。
- 数组操作是单向的(从末尾 push/pop),删除中间元素推荐交换到末尾再 pop,以减少 gas 消耗。
- 映射(mapping)只能作为状态变量,无法遍历,key 不能是复杂类型(数组等),但 string/bytes 可以。
- 结构体常作为 mapping 的 value,实现类似数据库表的功能;结构体内不应包含 mapping。
- 合约部署后不可修改,gas 优化必须在编码时前置考虑,避免循环依赖动态数组长度导致交易超出 gas 上限。