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

百度免费推广网站网络维护一个月多少钱

百度免费推广网站,网络维护一个月多少钱,编程培训机构招聘,如何做网站焦点图本节是《Solidity by Example》的中文翻译与深入讲解,专为零基础或刚接触区块链开发的小白朋友打造。我们将通过“示例 解说 提示”的方式,带你逐步理解每一段 Solidity 代码的实际用途与背后的逻辑。Solidity 是以太坊等智能合约平台使用的主要编程语…

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

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

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

Variables

Solidity中有3种类型的变量

  • state 状态变量

    • declared outside a function 在函数外部声明

    • stored on the blockchain 存储在区块链上

  • local 局部变量

    • declared inside a function 在函数内部声明
    • not stored on the blockchain 未存储在区块链上
  • global 全局变量

    • (provides information about the blockchain) 提供有关区块链的信息
// 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 Variables {// 定义一个名为 `Variables` 的智能合约。// 合约是一个运行在以太坊区块链上的程序,包含数据(状态变量)和逻辑(函数)。// 这个合约的目的是展示 Solidity 中的三种变量类型:局部变量、状态变量和全局变量。// State variables are stored on the blockchain.// 状态变量存储在区块链上。string public text = "Hello";// 声明一个名为 `text` 的状态变量,类型为 `string`(字符串)。// 初始化值为 "Hello",存储在区块链上。// `public` 关键字表示该变量可以被外部访问,Solidity 会自动为其生成一个 getter 函数(类似于 `function text() public view returns (string memory)`)。uint256 public num = 123;// 声明一个名为 `num` 的状态变量,类型为 `uint256`(256 位无符号整数,范围从 0 到 2^256-1)。// 初始化值为 123,存储在区块链上。// `public` 允许外部访问,并生成 getter 函数。function doSomething() public view {// 定义一个名为 `doSomething` 的公共函数,标记为 `view`(只读),表示它不会修改区块链上的数据。// `public` 表示函数可以被外部调用(包括用户、其他合约或 DApp)。// `view` 表示函数只读取数据,不消耗 Gas(在链下调用时免费)。// Local variables are not saved to the blockchain.// 局部变量不会保存到区块链上。uint256 i = 456;// 声明一个名为 `i` 的局部变量,类型为 `uint256`。// 初始化值为 456,存储在内存(`memory`)中,仅在函数执行期间存在。// 函数执行结束后,`i` 会被销毁,不会存储到区块链上。// Here are some global variables// 这里是一些全局变量uint256 timestamp = block.timestamp; // Current block timestamp// 声明一个名为 `timestamp` 的局部变量,类型为 `uint256`。// 赋值为 `block.timestamp`,这是一个全局变量,表示当前区块的时间戳(以秒为单位,自 1970-01-01 起)。// 时间戳由矿工提供,可能略有偏差,但通常用于记录交易发生的时间。address sender = msg.sender; // address of the caller// 声明一个名为 `sender` 的局部变量,类型为 `address`(以太坊地址,20 字节)。// 赋值为 `msg.sender`,这是一个全局变量,表示调用当前函数的账户地址(可能是用户或另一个合约)。}
}

Variables 是一个简单的智能合约,展示了 Solidity 中的三种变量类型:

  1. 状态变量(State Variables):存储在区块链上,永久保存。
  2. 局部变量(Local Variables):仅在函数执行期间存在,存储在内存中。
  3. 全局变量(Global Variables):由区块链提供,包含区块链或交易的元信息。

代码解释

  • 状态变量:
    • text 存储字符串 "Hello"num 存储数字 123
    • 这两个变量是永久存储在区块链上的,任何修改都需要支付 Gas。
    • 因为它们是 public,可以通过自动生成的 getter 函数(text()num())读取。
  • 局部变量:
    • i 是一个在 doSomething 函数中定义的变量,值为 456
    • 它只在函数运行时存在,不会保存到区块链,销毁后不消耗 Gas。
  • 全局变量:
    • block.timestamp 提供当前区块的时间戳(例如,当前时间)。
    • msg.sender 提供调用者的以太坊地址(例如,谁调用了这个函数)。
    • 这些变量由区块链环境提供,随时可用,且只读。

关键点

  • 状态变量:
    • 存储在区块链的 storage 中,永久保存。
    • 修改(如 text = "Hi")需要 Gas,因为要更新区块链数据。
    • public 变量会自动生成 getter 函数,方便外部读取。
  • 局部变量:
    • 存储在 memory 中,函数结束后销毁。
    • 不需要 Gas,因为不影响区块链。
  • 全局变量:
    • 由区块链提供,包含元信息(如时间、调用者地址、区块高度)。
    • 常见全局变量包括 block.timestamp(时间戳)、msg.sender(调用者)、block.number(区块高度)等。
  • Gas 成本:
    • 部署合约时,初始化 textnum 需要 Gas(因为存储到区块链)。
    • 调用 doSomethingview 函数,链下调用免费。
    • 如果添加修改 textnum 的函数,会消耗 Gas。
http://www.dtcms.com/wzjs/570356.html

相关文章:

  • 用手机做网站的软件成功的网络营销案例及分析
  • 广州外贸营销型网站建设泰州建站免费模板
  • 网站建设的基本步骤有哪些pc网站和手机网站
  • 哈尔滨网站建设公司oeminc长沙关键词快速排名
  • wordpress 子站销售的技巧与口才
  • 沈阳个人网站建设代理品牌世界著名小型建筑设计
  • 家装效果图网站投资交易网站开发
  • 网站建设的软文怎么写网站建设找导师蓝林
  • 做网站运营工资多少爱丽丝家具网页制作教程
  • 宝应人网站论坛天水市建设局网站公告
  • 网站商城建设价格深圳做门户网站
  • 毕设做微课资源网站设计可以吗站酷网怎么接单赚钱
  • 哪些公司做外贸网站有没有转门做乐器演奏的网站
  • 照片视频制作网站广告公司网站建设方案
  • 汕头建站模板系统视频app制作
  • 温州瓯北做网站网站制作进度表
  • 网站建设产品分割扁平式的网站
  • 商务网站建设与推广实训意义求职网站排名
  • 微网站如何建立的南通企业建站模板
  • 济南物流公司网站建设wordpress添加rss
  • 番禺网站建设系统php网站开发实训总结
  • 事务所网站建设深圳互联网设计公司
  • 网站开发前台实训竞价推广是什么意思
  • 国外网站搜索引擎优化方案做网站怎么赚钱知乎
  • 京东电器家电seo有什么作用
  • 网站 做内容分发资格做个网站多钱
  • 深圳的网站建设公司有哪些昆明网站设计能实现什么功能
  • 响应式网站有什么好处高密哪里有做网站的
  • 源码屋整站源码纪念币商城网站建设
  • 福州什么推广网站好十大成功网络营销案例