当前位置: 首页 > news >正文

solidity(3)

地址类型

pragma solidity ^0.8.0;contract AddressExample {// 地址address public _address = 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71;address payable public _address1 = payable(_address); // payable address,可以转账、查余额// 地址类型的成员uint256 public balance = _address1.balance; // balance of address
}

上面的代码展示了 Solidity 中地址类型的基本用法。地址类型存储一个 20 字节的值,即以太坊地址的大小。地址类型有两种:普通地址和可以转账 ETH 的地址(payable)。payable 修饰的地址可以执行转账操作,并具有两个额外的成员函数:`transfer` 和 `send`。在 payable 修饰的地址中,`send` 执行失败不会影响当前合约的执行,但会返回 false 值,需要开发人员检查返回值。除此之外,payable 地址还提供了 `balance` 和 `transfer()` 成员函数,用于查询 ETH 余额和执行安全转账操作。

定长字节数组

pragma solidity ^0.8.0;contract ByteArrayExample {// 固定长度的字节数组bytes32 public _byte32 = "MiniSolidity"; bytes1 public _byte = _byte32[0]; // MiniSolidity变量以字节的方式存储进变量_byte32,转换成16进制为:0x4d696e69536f6c69646974790000000000000000000000000000000000000000// _byte变量存储_byte32的第一个字节,为0x4d。
}

上面的代码演示了 Solidity 中固定长度的字节数组的基本用法。字节数组有两种:定长和不定长。定长的字节数组(如 bytebytes8bytes32)属于数值类型,而不定长的字节数组是引用类型(稍后讲述)。

在示例中,_byte32 是一个固定长度的字节数组,存储了字符串 "MiniSolidity"。变量 _byte 存储了 _byte32 的第一个字节,即字符串 "M" 的 ASCII 码(十六进制为 0x4d)。

枚举

pragma solidity ^0.8.0;contract EnumExample {// 用 enum 将 uint 0,1,2 表示为 Buy, Hold, Sellenum ActionSet { Buy, Hold, Sell }// 创建 enum 变量 actionActionSet public action = ActionSet.Buy;// enum 可以和 uint 显式的转换function enumToUint() external view returns (uint) {return uint(action);}
}

上面的代码演示了 Solidity 中枚举(enum)的基本用法。枚举是 Solidity 中的用户定义数据类型,主要用于为 uint 分配名称,使程序易于阅读和维护。与 C 语言中的 enum 类似,Solidity 的枚举使用名称来代替从 0 开始的 uint。

在示例中,ActionSet 枚举类型定义了三个可能的取值:BuyHoldSell。通过创建 action 变量,并将其初始化为 ActionSet.Buy,我们可以将枚举值用于实际编程中。

此外,示例中的 enumToUint 函数演示了如何将枚举值显式转换为 uint 类型。这种转换可以方便地将枚举值用于计算或存储。

相关文章:

solidity(3)

地址类型 pragma solidity ^0.8.0;contract AddressExample {// 地址address public _address 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71;address payable public _address1 payable(_address); // payable address,可以转账、查余额// 地址类型的成员uint256…...

笔记 | 编译原理L1

重点关注过程式程序设计语言编译程序的构造原理和技术 1 程序设计语言 1.1 依据不同范型 过程式(Procedural programming languages–imperative)函数式(Functional programming languages–declarative)逻辑式(Logical programming languages–declarative)对象式(Object-or…...

k8s存储卷 PV与PVC 理论学习

介绍 存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API,将存储如何制备的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 Persistent…...

【WPF应用32】WPF中的DataGrid控件详解与示例

在WPF(Windows Presentation Foundation)开发中,DataGrid控件是一个强大的数据绑定工具,它以表格的形式展示数据,并支持复杂的编辑、排序、过滤和分组等操作。在本文中,我们将详细介绍DataGrid控件的功能、…...

numpy,matplotilib学习(菜鸟教程)

所有内容均来自于: NumPy 教程 | 菜鸟教程 Matplotlib 教程 | 菜鸟教程 numpy模块 numpy.nditer NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 for x in np.nditer(a, orderF):Fortran order,即是列序优先&#x…...

Web API(四)之日期对象节点操作js插件重绘和回流

Web API(四)之日期对象&节点操作&js插件&重绘和回流 日期对象实例化方法时间戳DOM 节点插入节点删除节点查找节点父子关系兄弟关系M端事件js插件重绘和回流进一步学习 DOM 相关知识,实现可交互的网页特效 能够插入、删除和替换元素节点能够依据元素节点关系查找…...

27.WEB渗透测试-数据传输与加解密(1)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:26.WEB渗透测试-BurpSuite(五) BP抓包网站网址:http:…...

山寨windows

我的目标是能够运行windows 下的大部分PE格式的程序,这一点通过实验已经证明完全是可行的。 PE格式主要有exe dll sys等文件,这三个文件可以用相同的函数解析, 主要有以下段组成, 1、文件头,包含DOS文件头、PE文件头…...

unity工程输出的log在哪里?

在编辑器里进行活动输出的log位置: C:\Users\username\AppData\Local\Unity\Editor\Editor.log ------------------------------------ 已经打包完成,形成的exe运行后的log位置: C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目...

【力扣】7. 整数反转

7. 整数反转 题目描述 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 …...

Android Apk签名算法使用SHA256

Android apk签名算法使用SHA256 本文不介绍复杂的签名过程,说一下Android签名算法使用SHA256。 但是SHA1不是相对安全签名算法,SHA256更加安全一些。 一般大公司才会有这种细致的安全要求。 如何查看apk签名是否是SHA1还是SHA256 1、拿到apk文件&…...

2024.3.13力扣每日一题——最大二进制奇数

2024.3.13 题目来源我的题解方法一 贪心 题目来源 力扣每日一题;题序:2864 我的题解 方法一 贪心 统计1的个数,满足要求的字符串的末尾一位一定是1,所以需要将一位1放到末尾,然后将剩余的1从最高位开始放&#xff0…...

2024.4.1力扣每日一题——故障键盘

2024.4.1 题目来源我的题解方法一 直接利用StringBuilder的反转函数方法二 字符数组 题目来源 力扣每日一题;题序:2810 我的题解 方法一 直接利用StringBuilder的反转函数 使用StringBuilder构造结果,并利用其反转函数进行翻转 时间复杂度…...

第十四届蓝桥杯C/C++大学B组题解(一)

1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…...

4.网络编程-websocket(golang)

目录 什么是websocket golang中使用websocket Server端 Client端 什么是websocket WebSocket是一种在互联网上提供全双工通信的协议&#xff0c;即允许服务器和客户端之间进行双向实时通信的网络技术。它是作为HTML5的一部分标准化的&#xff0c;旨在解决传统HTTP协议在实…...

docker安装部署mysql后忘记root密码

应用场景是&#xff1a;用docker安装完mysql后&#xff0c;使用安装时候设置的密码登录不上MySQL&#xff1b; 1、修改docker映射出mysql的配置文件&#xff1a;my.cnf 在mysqld最下方添加skip-grant-tables进入安全模式&#xff08;随意一个密码即可登录mysql&#xff09; [m…...

c++的学习之路:14、list(1)

本章讲一下如何使用list&#xff0c;代码在文章末 目录 一、list介绍 二、增 三、删 四、查和改 五、交换 六、代码 一、list介绍 首先还是看一看官方文档的介绍如下图&#xff0c;如下方五点&#xff1a; 1. list是可以在常数范围内在任意位置进行插入和删除的序列式…...

huawei 华为交换机 配置 VLAN 聚合示例

组网需求 某公司拥有多个部门且位于同一网段&#xff0c;为了提升业务安全性&#xff0c;将不同部门的用户划分到不同VLAN 中&#xff0c;如 图 5-7 所示&#xff0c; VLAN2 和 VLAN3 属于不同部门。各部门均有访问Internet需求&#xff0c;同时由于业务需要&#xff0c;不同部…...

【QT+QGIS跨平台编译】056:【pdal-dimbuilder+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal介绍二、dimbuilder介绍三、pdal下载四、文件分析五、pro文件六、编译实践七、生成Dimension.hpp八、生成pdal_features.hpp一、pdal介绍 PDAL(Point Data Abstraction Library)是一个开源库,用于处理点云数据的获取、过滤、转换、分析和…...

【Python】探索Python中的aiohttp:构建高效并发爬虫

后来 我总算学会了 如何去爱 可惜你 早已远去 消失在人海 后来 终于在眼泪中明白 有些人 一旦错过就不再 &#x1f3b5; HouZ/杨晓雨TuTu《后来》 在数据密集和网络密集的任务中&#xff0c;提高程序的执行效率是非常重要的。Python作为一门强大的编程语言…...

RMBG-2.0与LangChain集成:智能内容生成系统搭建

RMBG-2.0与LangChain集成&#xff1a;智能内容生成系统搭建 1. 引言 你有没有遇到过这样的情况&#xff1a;做电商需要批量处理商品图片&#xff0c;做新媒体需要快速生成内容素材&#xff0c;做设计需要智能抠图换背景&#xff1f;传统方法要么费时费力&#xff0c;要么效果…...

技术赋能B端拓客:号码核验行业的迭代升级与价值深耕,

在数字经济持续深耕的当下&#xff0c;B端市场的竞争逻辑已发生根本性转变&#xff0c;“粗放拓客”逐渐被“精准高效”取代&#xff0c;企业对拓客全流程的效率与成本管控提出了更高要求。号码核验作为B端拓客的前置核心环节&#xff0c;其作用远不止于简单的空号筛查&#xf…...

GeoServer高效发布SHP文件全攻略:从单文件到批量处理的进阶技巧

GeoServer高效发布SHP文件全攻略&#xff1a;从单文件到批量处理的进阶技巧 在GIS数据发布领域&#xff0c;Shapefile&#xff08;SHP&#xff09;作为行业标准格式已有近30年历史&#xff0c;而GeoServer作为开源地图服务器的中流砥柱&#xff0c;二者的结合构成了空间数据服务…...

基于改进型多目标粒子群算法的电铲永磁同步电机过载工况下电磁-热双向耦合优化设计

基于改进型多目标粒子群算法的电铲永磁同步电机过载工况下电磁-热双向耦合优化设计 摘要 本文针对矿山电铲提升系统用永磁同步电机在过载起升、卡斗遇硬岩等瞬态超载工况下易发生温升异常,影响电机可靠性的问题,提出了一种基于电磁-热双向耦合的多目标优化设计方法。首先,…...

寻音捉影·侠客行企业实操案例:法务取证场景下千条采访音频线索挖掘

寻音捉影侠客行企业实操案例&#xff1a;法务取证场景下千条采访音频线索挖掘 1. 引言&#xff1a;音频线索挖掘的法务挑战 在法律取证工作中&#xff0c;经常需要处理大量的采访录音。想象一下这样的场景&#xff1a;一个商业纠纷案件&#xff0c;涉及数十个当事人的访谈录音…...

MiniCPM-o-4.5-nvidia-FlagOS跨平台部署:Windows系统配置要点

MiniCPM-o-4.5-nvidia-FlagOS跨平台部署&#xff1a;Windows系统配置要点 想在自己的Windows电脑上跑起来最新的MiniCPM-o-4.5-nvidia-FlagOS&#xff0c;结果被一堆环境问题卡住了&#xff1f;别急&#xff0c;这太正常了。很多朋友在Windows上部署这类AI项目时&#xff0c;总…...

从“认怂”到“被看见”:flomo的产品设计哲学

当大多数笔记软件都在追求“大而全”时&#xff0c;有一款产品选择了一条完全不同的路。它不让你写标题&#xff0c;不支持复杂排版&#xff0c;甚至在官网上大大方方地列出“自己不擅长什么”。它的创始人说&#xff1a;“35岁再创业&#xff0c;我学会了认怂。”它就是flomo&…...

通过 Langchain 框架实现 ChatGPT 的使用

一. 简介Langchain 框架&#xff1a;LangChain 是一个开源框架&#xff0c;是一个让大语言模型&#xff08;如ChatGPT&#xff09;能连接外部工具、记忆对话、执行复杂任务的“智能助手”开发框架&#xff0c;解决了LLM应用开发中的各种工程化问题。# LangChain 的核心定位&…...

大模型加载优化二选一:DeepSpeed Zero-3 vs Hugging Face device_map,我该如何抉择?

大模型加载优化二选一&#xff1a;DeepSpeed Zero-3 vs Hugging Face device_map&#xff0c;我该如何抉择&#xff1f; 在资源受限的环境下运行大型语言模型&#xff08;LLM&#xff09;时&#xff0c;内存优化策略的选择往往决定了项目的成败。面对动辄数十亿参数的模型&…...

[ linux添加应用图标到桌面 ] : 中将应用程序添加图标(快捷方式 ),并放置任务栏中,.desktop文件使用

.desktop文件格式在你的主目录中打开终端(ctrlaltt)&#xff0c;接着输入以下代码&#xff1a;touch test.desktop vim test.desktop这里我选择的是vim的编辑方式&#xff0c;当然如果你没有vim或者说不太熟练的话&#xff0c;你可以直接双击打开该文件。代码解释&#xff1a;t…...