IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Solidity 基础知识 -> 正文阅读

[区块链]Solidity 基础知识

Solidity 基础知识

官网:Solidity

版本设置

// SPDX-License-Identifier:MIT 表示身份协议
// ^0.8.7 表示当前代码支持 0.8.7 及以后 solidity 版本
// >=0.8.7 <0.8.12 表示支持该范围的版本 
pragma solidity 0.8.7;

基本数据类型

// 基础数据类型:boolean uint(无符号整数) int address bytes
bool sutFlag = true;
// uint 存储空间大小可以设置 最少设置 8(1 bit 占 8 位,以 2 的指数倍设置) 默认是 256 一般都显式定义出来 如果不赋值默认为 0
uint256 public studentNum = 123;
// bytes 一般是 0x 开头接一些随机的数字字母,这里存的字符串 xiao,会自动转成 bytes,最大空间是 32
bytes32 stuName1 = "xiao";
// string 只能用来存字符串
string stuName = "panda";

函数和变量的四种可见标识符

  • public
    public 外部和内部可见(为存储/状态变量创建一个getter 函数)
  • private
    仅在当前合约中可见
  • external
    仅在外部可见(仅适用于函数) - 即只能被消息调用(通过this.func)
  • internal
    只在内部可见

不消耗 gas 的两种关键字

  • view:标识函数代表只读,不允许在当前函数中修改任何状态
  • pure:不允许修改状态,同时不允许读取区块链数据
    注意:如果一个要改变区块链状态的函数调用了 view 或者 pure 函数,还是会消耗 gas。

结构体

// 定义
struct People {
    uint256 num;
    string name;
}
// 使用
People public person = People({myNum: 2, name: "panda"});

数组

People[] public persons;
function addPeople(string memory _name, uint256 _num) public {
    // 两种创建数组的方式
    persons.push(People(_num, _name));
    People memory person = People({myNum: 2, name: "panda"});
    persons.push(person);
    // 映射
    habbitMap[_name] = _num;
}

映射

mapping(string => uint256) public habbitMap;

EVM 存储

  • Stack:栈内存存储
  • Memory:变量只存在于临时的,可以再次赋值,且仅用于数组,结构体,映射对象(string 是字节数组)
  • Storage:即使在执行的函数外,也存在变量
  • Calldata:调用数据,变量只存在于临时的,当变量使用 calldata 定义时,变量不能再次赋值
  • Code
  • Logs
  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章           查看所有文章
加:2022-10-22 21:20:53  更:2022-10-22 21:22:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年2日历 -2024/2/22 8:13:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码