solidity合约hello world
hello world 实现
solidity合约编辑器remix
1.打开remix编辑器
打开在线编辑器remix
2.创建helloWorld.sol编写代码
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.编译代码
4.部署合约
5.运行合约
合约中一共有三个方法,可以点击运行
例子代码
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 协议》,转载必须注明作者和本文链接