当前位置: 首页 > news >正文

学做立体书的网站哪个网站做头像比较好

学做立体书的网站,哪个网站做头像比较好,网站需求,古典 网站模板本节是《Solidity by Example》的中文翻译与深入讲解,专为零基础或刚接触区块链开发的小白朋友打造。我们将通过“示例 解说 提示”的方式,带你逐步理解每一段 Solidity 代码的实际用途与背后的逻辑。Solidity 是以太坊等智能合约平台使用的主要编程语…

本节是《Solidity by Example》的中文翻译与深入讲解,专为零基础或刚接触区块链开发的小白朋友打造。我们将通过“示例 + 解说 + 提示”的方式,带你逐步理解每一段 Solidity 代码的实际用途与背后的逻辑。

Solidity 是以太坊等智能合约平台使用的主要编程语言,就像写网页要用 HTML 和 JavaScript,写智能合约就需要会 Solidity。

如果你从没写过区块链代码也没关系,只要你了解一点点编程概念,比如“变量”“函数”“条件判断”,我们就能从最简单的例子开始,一步步建立你的 Solidity 编程思维。

Reading and Writing to a State Variable

读写状态变量

要写入或更新状态变量,你需要发送一笔交易。 另一方面,你可以免费读取状态变量,无需支付交易费用

  • 状态变量:状态变量是存储在区块链上的数据(例如一个数字或字符串),它们是智能合约的“持久化”数据,类似于数据库中的记录。
  • 写入状态变量:
    • 修改状态变量(例如更新一个数字)需要发送一笔交易(transaction)。
    • 交易会改变区块链的状态,因此需要支付 Gas 费用(以太坊的计算和存储费用)。
    • 交易必须由用户或另一个合约发起,并由区块链网络确认。
  • 读取状态变量:
    • 读取状态变量(例如查看当前值)不需要发送交易。
    • 如果通过 链下调用(off-chain call,例如通过 Web3 库查询),读取是免费的,因为它不会改变区块链状态。
    • 通常,读取函数会标记为 view,表示它们只读数据,不消耗 Gas。
// SPDX-License-Identifier: MIT
// 声明代码采用 MIT 开源许可证,这是一种常见的开源许可协议,允许自由使用、修改和分发代码。pragma solidity ^0.8.26;
// 指定 Solidity 编译器版本必须大于或等于 0.8.26 并且小于 0.9.0。
// `pragma` 指令确保合约使用兼容的编译器版本,`^0.8.26` 表示支持 0.8.26 或更高版本(但不超过 0.9.0)。contract SimpleStorage {// 定义一个名为 `SimpleStorage` 的智能合约。// 合约是一个运行在以太坊区块链上的程序,包含数据(状态变量)和逻辑(函数)。// 这个合约的目的是展示如何读写状态变量。// State variable to store a number// 用于存储数字的状态变量uint256 public num;// 声明一个名为 `num` 的状态变量,类型为 `uint256`(256 位无符号整数,范围从 0 到 2^256-1)。// `public` 关键字表示该变量可以被外部访问,Solidity 会自动为其生成一个 getter 函数(类似于 `function num() public view returns (uint256)`)。// 未初始化,默认值为 0,存储在区块链上。// You need to send a transaction to write to a state variable.// 你需要发送一笔交易来写入状态变量。function set(uint256 _num) public {// 定义一个名为 `set` 的公共函数,用于更新状态变量 `num`。// 接受一个参数 `_num`,类型为 `uint256`,表示要设置的新值。// `public` 表示函数可以被外部调用(用户、其他合约或 DApp)。// 没有 `view` 或 `pure` 修饰符,表示函数会修改区块链状态,需要消耗 Gas。num = _num;// 将状态变量 `num` 的值更新为传入的参数 `_num`。// 修改状态变量会触发区块链存储更新,因此需要发送交易并支付 Gas。}// You can read from a state variable without sending a transaction.// 你可以无需发送交易即可读取状态变量。function get() public view returns (uint256) {// 定义一个名为 `get` 的公共函数,用于读取状态变量 `num` 的值。// `public` 表示函数可以被外部调用。// `view` 修饰符表示函数只读取区块链数据,不修改任何状态,因此链下调用免费。// 返回值类型为 `uint256`,表示返回 `num` 的当前值。return num;// 返回状态变量 `num` 的当前值。}
}

SimpleStorage 是一个简单的智能合约,展示了如何在以太坊区块链上读写状态变量。它包含:

  • 一个状态变量 num,用于存储一个数字(初始值为 0)。
  • 一个函数 set,用于更新 num 的值(写入操作)。
  • 一个函数 get,用于查看 num 的当前值(读取操作)。

代码做什么?

  • 状态变量 num
    • 存储一个数字,永久保存在区块链上。
    • 因为是 public,可以直接通过 getter 函数(num())或 get 函数读取。
  • 写入操作(set 函数):
    • 接受一个新数字 _num,更新 num 的值。
    • 修改区块链上的数据需要发送交易,消耗 Gas。
    • 例如,调用 set(42) 会将 num 改为 42。
  • 读取操作(get 函数):
    • 返回 num 的当前值。
    • 只读取数据,不修改区块链状态,因此链下调用免费。
    • 例如,调用 get() 会返回当前的 num 值(如 42)。
  • Gas 成本:
    • 部署合约时,初始化 num(默认 0)需要 Gas。
    • 调用 set 函数修改 num 需要 Gas(因为更改区块链状态)。
    • 调用 get 函数或 num 的 getter 函数是 view 操作,链下调用不消耗 Gas。

关键点:

  • 状态变量:
    • 存储在区块链的 storage 中,永久保存。
    • 修改需要交易和 Gas,读取通常免费。
  • 交易 vs. 调用:
    • 交易(Transaction):修改区块链状态(如调用 set),需要 Gas,记录在区块链上。
    • 调用(Call):只读取数据(如调用 get),链下免费,不记录在区块链上。
  • 公共变量:
    • public 变量自动生成 getter 函数,功能与 get 函数类似。
    • 例如,num 本身可以直接查询,等价于调用 get
  • 用途:
    • 读写状态变量是智能合约的核心功能,广泛用于存储用户数据、记录状态或实现业务逻辑。
    • 例如,SimpleStorage 可以用来记录一个计数器、用户余额或其他持久化数据。

读写状态变量的注意事项

  • 写入需要交易:
    • 任何修改状态变量的操作(如 set)都需要发送交易,消耗 Gas。
    • 交易失败(例如 Gas 不足或逻辑错误)会导致状态回滚,但已消耗的 Gas 不退还。
  • 读取免费:
    • view 函数(如 get)或 public 变量的 getter 函数在链下调用免费。
    • 如果在链上调用(例如另一个合约调用 get),会消耗少量 Gas。
  • 状态变量的存储成本:
    • 状态变量存储在区块链的 storage 中,占用空间较大,初始化和修改成本高。
    • 选择合适的类型(如 uint8uint256 更省空间)可以优化 Gas。
  • 安全性:
    • public 变量可以被任何人读取,注意不要存储敏感数据。
    • 修改状态变量时,考虑添加权限控制(例如只有管理员可以调用 set)。
  • 溢出检查:
    • 在 Solidity 0.8.0+ 中,uint256 的算术运算自动检查溢出/下溢,失败时交易会回滚。
http://www.dtcms.com/a/603925.html

相关文章:

  • 企业建设网站的目标集团网站建设哪家好
  • 西宁网站建设电话做阿里巴巴跟网站哪个更好
  • 佛山网站设计公司工程信息价在哪查询
  • 怎么做商业网站模板wordpress更换域名打不开
  • 阳新网站建设手机编写html网页的软件
  • 国外做设计赚钱的网站搜索引擎优化到底是优化什么
  • 邯郸网站建设公司哪家好自己建设网站在哪里建设
  • 绍兴网站建设报价如何在网站上做咨询浮动窗口
  • 珠海手机网站建设公司wordpress汉化免费企业主题
  • 湖州网站建设服务超详细wordpress
  • 录音转文字网站开发业务外包服务公司
  • 凯里网站制作干零活一天一结的平台
  • 寮步网站建设公司seo外包杭州
  • 注册网站会不会有风险深圳企业网站建设电话
  • 培训网站哪个最好的做百度微信小程序都有哪些网站
  • 重庆最大的网站制作公司自学网站建设看什么书
  • 宝洁网站建设制作企业网页
  • 北京市保障性住房建设投资中心官方网站克隆网站模板
  • 惠网 做网站电子政务平台官网
  • 怎么查看网站是否备案网站图片做伪静态
  • 建设网站的结束语建设网站的过程
  • 长沙3合1网站建设公司怎么做一家网站
  • 包头建设厅官方网站wordpress 会员权限
  • 高性能网站建设 下载广西住房和建设厅官网
  • 网站主机与服务器吗广平手机网站建设
  • 3.1 注意力机制大解密:如何让AI理解长文本依赖关系?
  • 企业网站做留言板有什么优势微信运营商
  • 购物网站排名榜rp做网站
  • 宁国网站开发手机网站建设图
  • w78企业网站后台怎么做天津企业网站建设公司