solidity合约hello world实现

hello world 实现

solidity hello world实现

solidity合约编辑器remix

1.打开remix编辑器

打开在线编辑器remix
solidity hello world实现

2.创建helloWorld.sol编写代码

solidity hello world实现

pragma solidity ^0.8.17;

contract Hello {
    string public message = "Hello World!"; // 状态变量

    function fn1() public view returns (string memory) {
        return message;
    }

    function fn2() public pure returns(string memory){
        return "Hello World!";
    }

    function fn3() public pure returns(string memory){
        return fn2();
    }
}

3.编译代码

solidity hello world实现
solidity hello world实现

4.部署合约

solidity hello world实现

5.运行合约

solidity hello world实现
合约中一共有三个方法,可以点击运行

例子代码

hello world 代码分析

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract Hello {
    string public message = "Hello World!"; // 是一个公共的状态变量,存储着字符串 "Hello World!"。

    function fn1() public view returns (string memory) {
        return message; // 是一个公共的视图函数(view),用于返回状态变量 'message' 的值。 因为它只读取数据而不修改状态,所以被声明为视图函数。
    }

    function fn2() public pure returns(string memory){
        return "Hello World!"; // 是一个公共的纯函数(pure),用于返回字符串 "Hello World!"。因为它不读取状态变量,所以被声明为纯函数。纯函数不访问合约的状态变量,只依赖于输入参数或其他纯函数的输出
    }

    function fn3() public pure returns(string memory){
        return fn2(); // 是一个公共的纯函数(pure),它调用了函数 fn2 并返回其结果。
    }
}

在 Remix 中调用合约的不同函数时,可以观察到它们消耗的 gas 不相同。通常直接访问状态变量message 的 gas 消耗更低,因为状态变量message存储在合约的存储区域中,而函数调用涉及读取状态变量并返回结果。如函数helloWorld是读取了状态变量然后再返回出去会消耗更多的gas。

需要之一的是在 Remix 中得到的 gas 消耗结果有时会有误差,所以不要过于依赖 Remix 中的 gas 消耗估算。

在编写 Solidity 代码时,除了保证安全性外,优化合约的 gas 消耗是一个重要的方向。后续的章节中,我们将探讨如何进行 gas 优化,在 Remix 中,代码顺序,变量名/函数名长短的修改都可以大大影响 gas 消耗。所以,不要过于依赖 Remix 中的 gas 消耗估算结果,实际 gas 消耗可能会有所不同。

合约代码中的三种注释

我们看到第一行的代码是 // SPDX-License-Identifier: MIT 这里面的 // 符号,是注释符。注释使用 // 或 /* */ 符号进行表示,不会被程序执行,而是提供给开发者阅读和理解代码的辅助信息。

注释非常重要。代码注释可以帮助开发者更好地理解代码的意图和逻辑。尤其是在长时间不接触某段代码后,注释能够快速提醒开发者代码的功能和设计思路,节省理解代码所需的时间。此外,注释还可以作为文档的一部分,为其他开发者提供使用代码的指导和说明。

因此,请不要相信那种认为好的代码不需要注释的观点。在实际工作中,代码注释是一个好的开发习惯,对于自己和他人的代码理解和维护都有很大帮助。在编写注释时,尽量做到准确、简明扼要,注释内容要清晰表达代码的意图和关键信息。

本作品采用《CC 协议》,转载必须注明作者和本文链接
siya
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!