014.Solidity入门——01数据类型

2023-11-11

数据类型是编写智能合约的基础。Solidity支持多种数据类型,包括基本数据类型、数组、结构体、枚举、映射等。

基本数据类型包括:

  • bool: 布尔型,true或false。

  • int/uint: 整型,可以表示正负整数(int)或非负整数(uint)。

  • address: Ethereum地址。

  • bytes: 字节数组,可以表示二进制数据。

  • string: 字符串。

数组:

  • type[size]: 固定大小数组,长度固定。

  • type[] : 动态大小数组,长度可以动态更改。

结构体:结构体可以用来存储多个不同数据类型的数据。

枚举:枚举类型可以让你定义一个固定的常数集合,每个常数都有一个名称。

映射:映射类型可以将键映射到值,类似于数据字典。

下面是 Solidity 中常用的数据类型示例:

// 布尔类型
bool isValid;

// 整型
// int8、int16、int24、int32、int64 分别对应 8、16、24、32、64 位整数
int8 num1 = -128;
int16 num2 = -32768;
int32 num3 = -2147483648;
int64 num4 = -9223372036854775808;

// 无符号整型
// uint8、uint16、uint24、uint32、uint64 分别对应 8、16、24、32、64 位无符号整数
uint8 num5 = 255;
uint16 num6 = 65535;
uint32 num7 = 4294967295;
uint64 num8 = 18446744073709551615;

// 字符串
string text = "Hello, World!";

// 字节数组
bytes32 data;

// 元组
tuple(int32, string) person = (28, "John Doe");

// 动态数组
int[] intArray;

// 静态数组
int[3] intStaticArray = [1, 2, 3];

//定义结构体类型变量
struct Person{
    string name;
    uint age;
}
Person p;

//定义枚举类型变量
enum Color{Red, Green, Blue}
Color c;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

014.Solidity入门——01数据类型 的相关文章

  • 新加坡社区领袖卓顺发的荣誉与大爱精神

    2023年11月24日 善济医社义务执行主席卓顺发太平绅士JP BBM L PVPA受邀出席内政部主办的答谢活动2023 主宾为内政部长兼律政部长尚穆根先生 Mr K Shanmugam 2018年起 卓顺发受委为太平绅士后 应内政部邀请
  • 默克尔树(Merkle Tree)

    默克尔树 Merkle Tree 是一种哈希树的变体 它是一种有向无环图 DAG 通常用于数据完整性验证 它以密码学家拉尔夫 默克尔的名字命名 是由一系列哈希值构成的树状结构 默克尔树的特点是 它的每个非叶子节点都是其子节点的哈希值的哈希
  • 以太坊 Solidity 中的划分

    我正在创建一个发行代币的合约 我希望持有代币的账户能够检查他们拥有的所有代币所占的百分比 我知道以太坊还没有实现浮点数 我应该怎么办 在客户端而不是在 Solidity 中执行该计算可能是最好的 最低的 Gas 成本并且实施起来很简单 如果
  • web3 websocket连接阻止节点进程退出

    我有一个创建 web3 websocket 连接的 Node js 进程 如下所示 web3 new Web3 ws localhost 7545 当进程完成时 我向它发送一个 SIGTERM 它不会退出 而是永远挂起 没有控制台输出 我在
  • 未找到源“@openzeppelin/contracts/token/ERC721/ERC721.sol”:不支持文件导入回调

    我已使用 Solidity 扩展将 Open Zeppelin ERC721 令牌标准导入到我的 VS Code 中 但在我的所有 OZ 导入语句中看到以下警告 错误截图 https i stack imgur com cfVUH png
  • 申泰勇教练的独家人物化身系列即将登陆 The Sandbox

    申泰勇 Shin Tae yong 教练是足球界的传奇人物 他来到 The Sandbox 推出了自己的专属人物化身系列 作为前 K 联赛中场球员和印尼队取得历史性成就的幕后教练 他的传奇经历现在已经影响到了虚拟世界 向过去 现在和未来致敬
  • 案例研究:YGG 如何通过 GAP 帮助 Pixels 扩大玩家群体

    在 Sky Mavis 联合创始人 Jeffrey Jihoz Zirlin 在 YGG Web3 游戏峰会 W3GS 上发表主题演讲时 他向在场的人们透露 MMO 农场游戏 Pixels 的日活跃用户数已经超过了 130 000 人 这使
  • Solidity:ParserError:预期的编译指示、导入指令或合约/接口/库定义

    当我编写简单合约时 我也遇到了最新的 solc 0 5 2 版本 和 0 4 25 的错误 我尝试过以下步骤 已卸载的 Solc npm uninstall solc 安装的目标版本 npm install save 电子邮件受保护 cdn
  • 将三个整数编码为单个整数

    我必须将 3 个数字编码为同一个整数 我有这 3 个测量值 uint256 carLength uint256 carWidth uint256 carDepth 我想将这 3 个数字编码为同一个整数 并且可以解码 我的问题是我在这么低的水
  • 如何在 Python 和 web3.py 中获取 Solidity 恢复/需要错误原因

    我正在努力抓住要求 交易恢复时出错 但我得到了交易的哈希值 我正在使用web3 py def addParticipants request web3 Web3 HTTPProvider settings Blockchain IP add
  • 恢复发送至自部署合约的BNB

    我正在尝试创建 BOT 因此在 BSC 中从 eatamask 创建并部署了一个合约 我向该合约发送了一些 BNB 来检查 但没有成功 我怎样才能拿回BNB 感谢帮助 因为我对此很陌生 除非您在合约中具有允许您提取资金的自定义功能 否则它们
  • 如何获取交易结果和状态

    我正在尝试使用以太坊区块链和 Solidity 合约 我目前正在部署合约并对其执行一些操作 但我想知道如何获取特定交易的一些 反馈 回调 返回 例如 有没有办法将事务的状态设置为 0 错误 并仍然获取事件 if id length lt 0
  • 使用 ethers js 运行安全帽测试时,合约事件侦听器不会触发

    这是一个非常小的存储库来显示该问题 https github com adamdry ethers event issue https github com adamdry ethers event issue 但我也会在这里解释一下 这是
  • Solidity有HTTP请求功能吗?

    我正在使用以太坊制作一个项目 在这个项目中 我正在签订一份名为 A 的合同 当我向 A 发送消息时 我希望 A 发出网络请求 Solidity 是否可以使用 http 请求 方法 GET POST 以太坊区块链无法与外界交互 否则它将不再是
  • ERROR 发送和传输仅适用于应付地址类型的对象,不适用于地址

    function finalizeRequest uint index public restricted Request storage request requests index require request approvalCou
  • 类型错误:无法读取未定义的属性“长度” - 使用安全帽部署时

    我在尝试在安全帽开发链上部署模拟合约时收到以下错误 我正在关注 使用 JavaScript 学习区块链 Solidity 和全栈 Web3 开发 Patrick Collins 在 FreeCodeCamp YT 频道上的 32 小时课程
  • 如何发送wei/eth到合约地址? (使用truffle javascript测试)

    我正在尝试将 wei eth 发送到我的 Solidity 合约的地址 该合约具有外部应付回退功能 我下面的 truffle javascript 测试不会导致 instance address 的余额获得任何 wei instance a
  • 如何导入 AggregatorV3Interface

    我正在尝试导入 AggregatorV3 但找不到该文件 这是我的代码 提前抱歉 我仍然是一名初学者程序员 SPDX License Identifier MIT pragma solidity 0 8 9 import chainlink
  • Chainlink - 工作没有完成

    我一直在学习 Chainlink API 并尝试构建一个简单的合约 该合约将对 API 进行外部调用 并根据 Oracle 请求的结果向用户收费 例如 如果 API 导致以下结果 我们将向您收取 1 美元费用 true如果结果是 0 25
  • 如何返回 Solidity 中的结构数组?

    我正在为以太坊智能合约设计一个解决方案bidding 用例包括保留名称 例如 myName 并分配给一个地址 然后 人们可以竞标该名称 在本例中为 myName 可以有多个名称发生多次此类出价 struct Bid address bidO

随机推荐

  • SpringBoot多数据源nacos配置

    1 背景 因新项目对旧系统业务的重构 原有业务也只有单一数据源 项目开发到后期 现场存在历史数据迁移问题 在讨论后希望系统支持多数源的方式解决对历史数据同步调用的问题 项目的配置文件为nacos配置 涉及多个现场的升级部署 因此希望改动影响
  • Python爬虫:保姆级教你完成数据存储

    数据存储 在前面的几篇文章中 我分别总结了 什么是爬虫 requests模块总结 正则表达式提取数据 XPath解析数据 Beautiful Soup解析数据 pyquery解析数据 jsonpath提取json数据 在上面的几篇文章当中都
  • 微云网页版服务器繁忙,腾讯微云传输速度慢的几种原因及解决方法

    大家经常使用腾讯微云吧 不过大家知道腾讯微云传输速度慢怎么办吗 下面小编就给大家分享腾讯微云传输速度慢的几种原因及解决方法 希望会对你有所帮助 腾讯微云传输速度慢的几种原因及解决方法 1 网络宽带本身速度慢 解决办法 当处于网络使用高峰期的
  • JMeter 实时监控仪表板配置 (Grafana + InfluxDB)

    在服务器上跑 JMeter 做压测的话 给工具本身也配上实时监控是必须的 命令行输出能提供的信息太少 JMeter的 Backend Listener 支持 Graphite 和 InfluxDB 这里选择 InfluxDB 做时序数据库
  • 【Qt】贴图实现方向控制盘

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net iriczhao article details 122052059 一 效果走一波
  • 【Java基础】Windows快捷键

    Windows常用快捷键以及操作 注 本文内容均来自B站up 遇见狂神说 仅做学习使用 如有侵权删 1 与Ctrl有关的快捷键 Ctrl C 复制 Ctrl V 粘贴 Ctrl X 剪切 Ctrl Z 撤销 Ctrl A 全选 Ctrl S
  • 【吴恩达机器学习笔记】代价函数(一)

    目录 前言 一 单变量线性回归问题 二 建模误差 三 代价函数 平方和误差函数 平均平方和误差 代价函数 四 直观理解代价函数一 五 直观理解代价函数二 三维图像 等高线图 总结 前言 本栏目主要记录吴恩达老师的 机器学习 课程的学习笔记
  • node+axios实现服务端文件上传

    最近调研企业wx集成H5应用 其中有一个发送图文消息 需要上传图片到临时素材库 之前做过文件上传到阿里云 七牛云都是服务端提供封装好的文件上传接口 在客户端使用ajax的方式上传 所以就来踩踩坑 使用node axios实现服务端文件上传
  • Unity3D+Vuforia实现AR效果的案例

    实验步骤 1 打开Unity3D 新建一个项目 下载链接 参考我另一篇文章 Unity3D Vuforia配置 2 导入 import Vuforia包 我这个版本自带Vuforia 如果导入下载的会有冲突 出错 直接按照下图导入 Game
  • QT随机生成验证码 四位数字并 禁止编辑的方法

    随机生成数字 int Widget generateRandomNumber qsrand QTime 0 0 0 secsTo QTime currentTime for int i 0 i lt 4 i int test qrand r
  • 转 C#中的override

    https zhidao baidu com question 446422940 html 要扩展或修改继承的方法 属性 索引器或事件的抽象实现或虚实现 必须使用 override 修饰符 override 方法提供从基类继承的成员的新实
  • Qt跨线程信号和槽的连接

    Qt支持三种类型的信号 槽连接 1 直接连接 当signal发射时 slot立即调用 此slot在发射signal的那个线程中被执行 不一定是接收对象生存的那个线程 2 队列连接 当控制权回到对象属于的那个线程的事件循环时 slot被调用
  • 压测以及python的自省

    经过两个季度的开发 数据库收敛的项目一期终于到了最后阶段 这周完成最后的功能测试之后即将部署到测试环境进行压测 并进行运维文档的完善 下午小组会上 heng哥分享了python类和自省机制的相关内容 他用了苏格拉底那句经典的 The une
  • Java多线程,Android多线程

    目录 一 线程的概念 二 线程创建的方式及特点 三 线程创建方式 1 继承Thread类 2 实现Runnable接口 3 实现Callable接口 我觉得了解即可 4 AsyncTask异步任务 被弃用 5 AsyncTask替代方案 四
  • 最全的计算机网络思维导图

    计算机网络思维导图 概述 应用层 传输层 网络层 链路层 物理层 概述 应用层 传输层 网络层 链路层 物理层
  • ASP.NET 2.0数据操作(一)

    创建数据访问层的过程 第一步 在网站中添加新项 数据集 Visual Studio会问我们是否将DataSet添加到App Code文件夹中 选择 Yes 第二步 向数据集中添加TableAdapter控件 完成上步后 Visual Stu
  • PPT添加页码

    点击 插入 点击 幻灯片编号 点击 幻灯片编号 点击 全部应用 右下角出现编号
  • ue测试php,用户体验测试(UE测试)

    GO语言练习 channel 缓冲机制 1 代码 2 运行 3 解析 1 代码 buffer go package main import fmt time func readThre Web调试工具 Fiddler介绍 Fiddler 教
  • JDBC连接数据库案例

    基于 MySQL 8 0 3 JDK 1 8 数据库的创建 创建学生数据库 CREATE DATABASE Student 创建学生表 CREATE TABLE STU ID INT PRIMARY KEY AUTO INCREMENT N
  • 014.Solidity入门——01数据类型

    数据类型是编写智能合约的基础 Solidity支持多种数据类型 包括基本数据类型 数组 结构体 枚举 映射等 基本数据类型包括 bool 布尔型 true或false int uint 整型 可以表示正负整数 int 或非负整数 uint