Solidity——什么是状态变量

在以太坊(Ethereum)的智能合约中:


✅ 状态变量(State Variables)是指:

存储在区块链上的数据

它们的值保存在以太坊的永久存储(也叫 storage)中,而不是临时的内存(memory)或堆栈(stack)中。


📌 语法上怎么写状态变量?

在 Solidity 中,只要你在**合约作用域内(合约的最外层)**声明一个变量,它默认就是状态变量。

✅ 例如:
复制代码
pragma solidity ^0.8.0;

contract MyContract {
    uint public myNumber;  // 状态变量,写入链上 storage
}

这行 uint public myNumber; 就是一个状态变量。它的值将永久存储在链上,只要你部署了这个合约,myNumber 就存在于以太坊的存储中。


❌ 那下面这样的是不是状态变量?

复制代码
function foo() public {
    uint temp = 1;  // 局部变量,不是状态变量,只存在于内存
}

不是状态变量,这叫局部变量 ,仅存在于函数调用期间,不写入链上


总结判断标准:

变量位置 是否状态变量 是否写入链上状态
合约作用域定义 ✅ 是 ✅ 是
函数内部定义 ❌ 不是 ❌ 否(临时内存)

⚠️ 注意:

只有状态变量的写操作才会修改链上状态,读操作不会。

写操作:
复制代码
myNumber = 42;  // 修改了状态变量,写入链上
读操作:
复制代码
return myNumber;  // 只是读取,不改变链上状态

如果你需要,我可以讲解 memory、storage、calldata 的区别,以及它们在函数参数和局部变量中的使用方式。是否继续?

相关推荐
空中湖6 小时前
去中心化投票系统开发教程
去中心化·区块链
MicroTech202519 小时前
微算法科技 (NASDAQ:MLGO)利用量子密钥分发QKD技术,增强区块链系统的抗攻击能力
区块链·量子计算
dingzd951 天前
去中心化金融(DeFi)入门必看
金融·web3·去中心化·区块链·facebook·tiktok·instagram
miner.Fan1 天前
蚂蚁 S21e XP Hyd 3U 860T矿机性能分析与技术特点
区块链
Sui_Network1 天前
凭借 Seal,Walrus 成为首个具备访问控制的去中心化数据平台
大数据·人工智能·科技·web3·去中心化·区块链
TechubNews1 天前
Webus 与中国国际航空合作实现 XRP 支付
大数据·网络·人工智能·web3·区块链
凡哥btczf6661 天前
神马 M63S+ 438T矿机评测:SHA-256算法高效能挖矿利器
区块链
taxunjishu1 天前
CC-Link IE FB 转 DeviceNet 实现欧姆龙 PLC 与松下机器人在 SMT 生产线锡膏印刷环节的精准定位控制
运维·人工智能·物联网·自动化·区块链
miner.Fan2 天前
阿瓦隆 A1146 Pro 63T:性能与设计详解,探索区块链挖矿新高度
区块链
StockPP2 天前
全球股票API接口:一站式接入印度股票实时行情数据指南
区块链