再学:Solidity数据类型

目录

1.uint:无符号整型

2.引用类型

3.数组

4.注意gas的消耗

[​编辑 5.映射](#编辑 5.映射)


1.uint:无符号整型

注意能容纳的最大值和最小值

2.引用类型

值类型赋值 相当于 拷贝

若拷贝开销过大,可以考虑引用类型。

memory:只存在于函数内部,调用期间。局部变量

storage:保存于合约,开销最大。全局。

calldata:相当于常量

3.数组

复制代码
T[k]:固定长度

uint [10] tens;

T[]:长度动态调整

public numbers;

length:数组长度;

push();添加新的零初始化元素到数组末尾,返回引用;

push(x);变长的数组末尾添加给定的元素;

pop();从数组末尾删除元素;

4.注意gas的消耗

若采用for循环,gas消耗极大

contribute:定义 modifyFunder:修改 getFund:获取

同质化代币和非同质化代币是什么意思?

  • 同质化代币(Fungible Token,FT)

  • 定义:同质化代币是一种能够替换、具有统一性、可接近无穷拆分的代币。例如,比特币(BTC)和以太坊(ETH)都是同质化代币。

  • 非同质化代币(Non-Fungible Token,NFT)

  • 定义:非同质化代币是一种基于区块链技术的数字资产,代表独一无二的物品或内容的所有权。每个NFT都是独一无二且不可替代的。

5.映射

(1).声明形式:mapping(KeyType =>ValueType),

例如:mapping(address => uint) public balances;

(2).使用方式类似数组,通过 key访问,例如:balances[userAddr];

(3).映射没有长度、没有 key 的集合或 value 的集合的概念

(4).只能作为状态变量(storage)

(5).如果访问一个不存在的键,返回的是默认值。

--1图片中的mapping(address => uint) public balances;

意思是地址指向余额。

--2图片中的balances[msg.sender] = newBalance;

意思是传入新的数据。通过 key访问,通过balances[msg.sender];

--3图片中的get方法,是通过传入address key,来查询得到相对应的余额,也就是value值

--4地址就是创建合约的地址

相关推荐
常州北格数字孪生1 小时前
宁德时代区块链+数字孪生专利解析:去中心化身份认证重构产业安全底座
区块链·数字孪生·身份认证·宁德时代·专利技术
giszz11 小时前
【Web3】上市公司利用RWA模式融资和促进业务发展案例
人工智能·web3·区块链
胡耀超20 小时前
哈希函数详解(SHA-2系列、SHA-3系列、SM3国密)案例:构建简单的区块链——密码学基础
区块链·密码学·哈希算法·数据安全·sha·sm3
尽-欢1 天前
以太坊智能合约开发框架:Hardhat v2 核心功能从入门到基础教程
单元测试·区块链·智能合约
琢磨先生David2 天前
深入探索 Java 区块链技术:从核心原理到企业级实践
java·区块链
乌旭2 天前
算力经济模型研究:从云计算定价到去中心化算力市场设计
人工智能·深度学习·云计算·去中心化·区块链·gpu算力·risc-v
Xiaoxiaoxiao02093 天前
GAEA商业前景和生态系统扩展
人工智能·架构·web3·去中心化·区块链
拾忆-eleven3 天前
区块链vs实体经济:一场金融、医疗、政务与物流的“效率革命”
去中心化·区块链·分布式账本
链科天下3 天前
中国发布Web3计划:区块链列为核心基础技术,不排除发展加密资产应用!
web3·区块链
倒霉男孩4 天前
区块链密码学核心
区块链·密码学