Solidity 学习记录_2_数据类型
Solidity 数据类型小结 分类 核心内容 关键特性 类型体系 分为值类型、引用类型、映射类型三大类 Solidity 是静态类型语言,变量类型编译时确定 值类型 包含布尔、整型(uint/int)、地址、定长字节数组、枚举、函数类型等 1. 赋值/传参时值拷贝,修改副本不影响原变量 2. 数据占用 ≤32 字节 3. 示例:uint a=10; uint b=a; b=20; → a 仍为 10 引用类型 包含数组、结构体、string/bytes(动态字节数组)、合约 1. 数据占用通常 >32 字节,支持引用传递减少拷贝开销 2. 必须显式指定数据位置(memory/storage/calldata) 3. 赋值规则: - 不同位置赋值 → 拷贝副本 - 相同位置赋值 → 创建引用(修改新变量会影响原变量) 数据位置(引用类型专属) 4 种位置(transient 不支持引用类型) storage 存储状态变量,永久保存在区块链,Gas 消耗最高 memory 函数内临时存储,函数执行后释放,Gas 中等 calldata 存储 external 函数参数,只读不可修改,Gas 消耗最低 transient 单次交易内有效,不支持引用类型定义 映射类型 键值对结构(mapping(KeyType => ValueType)) 1. 类似字典/哈希表,仅支持作为状态变量(storage) 2. 详细用法需结合后续数据结构章节学习 值类型 vs 引用类型 ...