Solidity入门(1)-Hello World

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


Hello World

就像学习任何其他编程语言的入门一样,我们将通过编写一个简单的"Hello World"程序来介绍 Solidity 的基本语法。这不仅帮助我们熟悉语言结构,还是检验编译器、开发和运行环境是否正确安装的常用方法。

Hello World 合约 接下来的例子展示了一个基础的"Hello World"智能合约,该合约包含两个函数。一个是 set 函数,用于接收输入并将字符串存储在名为 storeMsg 的变量中;另一个是 get 函数,用于从 storeMsg 变量中检索并返回存储的字符串。这种结构简明扼要,非常适合初学者理解智能合约的基本操作。

bash 复制代码
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.17;

contract HelloWorld {
    string storeMsg;

    function set(string memory message) public {
        storeMsg = message;
    }

    function get() public view returns (string memory) {
        return storeMsg;
    }
}

你可能会好奇,为什么我们不像在 C 或 Python 中那样,直接打印一个"Hello World"字符串。原因在于,Solidity 并不能像其他编程语言那样自动运行代码。Solidity 代码的执行需要由某个账户或其他合约触发,并且必须支付足够的 Gas 费用才能执行其函数。因此,要测试这个"Hello World"程序,我们必须主动与之互动才能观察到执行结果。这种设计体现了智能合约在区块链上运行的独特性质。

部署合约

根据之前的教程,使用 Remix IDE 进行编译后,我们将进入"Deploy & Run Transactions"面板,点击"Deploy"按钮进行部署。部署完成后,我们可以在"Terminal"面板和"Deployed Contract"窗口中看到新的记录出现。

首先查看"Terminal"面板,展开信息后,可以看到关于我们部署合约的一些详细信息,包括合约部署的状态信息(status)、发起部署的账户(from)、新部署的合约地址(to)、使用的 Gas 等信息。此处我们可以确认合约部署状态显示为成功。

因此,我们可以在"Deployed Contract"窗口中找到我们刚刚部署的合约。在下一小节中,我们将介绍如何与这个"Hello World"合约进行交互。

合约交互

如下图所示,我们通过两个步骤与合约进行交互,并执行了两笔交易,每笔交易都需支付相应的 Gas 费用:

第一步: 调用 set("hello world!") 函数,将字符串 "hello world!" 写入到 storeMsg 状态变量中。

第二步: 调用 get() 函数,从状态变量 storeMsg 中检索并返回字符串 "hello world!"。

至此,我们已成功与合约交互,并通过 get 函数获得了返回的 "hello world!" 字符串。大型合约的开发同样遵循这一基本模式和流程。随着我们对区块链技术理解的加深,将能够开发出越来越复杂的合约。

相关推荐
普通网友13 小时前
共识算法实现:从工作量证明到权益证明的演进
算法·区块链·共识算法
木西16 小时前
深度拆解 FWA 核心智能合约:从 Loss-to-Earn 到链上动态定价的实现逻辑
web3·智能合约·solidity
ZDGJ609921 小时前
国际期货开通需要满足哪些条件 ?流程复杂吗?
区块链
ZDGJ60992 天前
外盘期货与内盘期货交易规则差异
区块链
木西3 天前
硬核拆解 Uniswap V4:从单例架构、EIP-1153 到 Hooks 落地源码复刻
web3·智能合约·solidity
IvorySQL3 天前
PG 日报|优化缓冲区批量扫描,降低多套接字并发竞争
数据库·人工智能·postgresql·开源·区块链
mrbande4 天前
Vatee万腾:把信息透明度做扎实,更谨慎的使用者更容易感受到的清单
区块链
Web3李李4 天前
Web3 创业最大误区:DApp 能跑≠能上线!无数项目死在这个
金融·web3·区块链·智能合约·软件开发·dapp开发·defi开发
ithadoop4 天前
CLOB-FIRST:当永续合约把“订单簿“重新变成主角
区块链·clob·amm·永续合约·hyperliquid·dydx v4·gmx v2
木西4 天前
从理论到实践:Solidity 高性能集中流动性(CLMM)代码复刻与架构优化实战
web3·智能合约·solidity