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!" 字符串。大型合约的开发同样遵循这一基本模式和流程。随着我们对区块链技术理解的加深,将能够开发出越来越复杂的合约。

相关推荐
Max_uuc5 小时前
【C++ 硬核】利用链接器魔法 (Linker Sections) 实现“去中心化”的自动初始化与插件系统
去中心化·区块链
devmoon6 小时前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
傻小胖6 小时前
22.ETH-智能合约-北大肖臻老师客堂笔记
笔记·区块链·智能合约
傻小胖21 小时前
21.ETH-权益证明-北大肖臻老师客堂笔记
笔记·区块链
硅基流动1 天前
硅基流动 × ValueCell:8K+Star,去中心化金融智能体加速投资决策
金融·去中心化·区块链
devmoon1 天前
使用 Hardhat 在 Polkadot Hub 测试网部署基础 Solidity 合约(完整实战指南)
web3·区块链·智能合约·波卡·hardhat
威胁猎人1 天前
【黑产大数据】2025年全球KYC攻击风险研究报告
大数据·区块链
焦点链创研究所1 天前
去中心化实体基础设施网络的崛起:比较分析
网络·去中心化·区块链
MicroTech20251 天前
微算法科技(NASDAQ :MLGO)量子测量区块链共识机制:保障数字资产安全高效存储与交易
科技·安全·区块链
区块链蓝海1 天前
Ardor v2.6.0 正式发布:Nxt迁移完成,Ardor迈入多链协同新阶段
人工智能·区块链