solidity入门指南 第一章

Solidity本地开发环境搭建

solidity官方Remix IDE地址: https://remix.ethereum.org/ (需科学上网)

搭建solidity本地开发环境
第一种:在vscode中只需要在扩展里安装Ethereum Remix插件

  1. 插件安装完成
    avatar
  2. 连接远程IDE
    avatar

第二种:npm安装remixd,通过remixd和远程ide建立连接

1
2
npm i @remix-project/remixd
remixd -s <absolute-path> --remix-ide https://remix.ethereum.org

代码实战

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.14;

contract HelloWorld{

string Name = "hello world";

function getName() public view returns(string memory)
{
return Name;
}

function changeName(string calldata name) public
{
Name = name;
}
}
  • solidity从0.6.8及其以上版本需要引入 SPDX 许可证,在头部使用SPDX-License-Identifier
  • 您可以在此处找到许可证列表
  • 引用类型必须显式提供存储类型的数据区域
  • 数据区域
    1. memory:其生命周期仅限于外部函数调用
    2. storage:存储状态变量的位置,生命周期仅限于合约的生命周期
    3. calldata:存储函数参数的不可修改、非持久性区域,其行为主要类似于内存,它可以避免复制并确保无法修改数据

在 0.5.0 版本之前,可以省略数据位置,并且会根据变量的类型、函数类型等默认到不同的位置,但现在所有复杂类型都必须给出明确的数据位置。

运行结果

  1. 修改名称 avatar
  2. 获取名称 avatar

从结果可以发现赋值的时候也就是写操作需要花费gas,因为写操作需要向整个链进行数据同步;但是读取操作则不花费gas