Solidity的合约和面向对象语言中的类的定义相似。每个合约包括了 状态变量,函数,函数修饰符,事件,结构类型 和枚举类型。另外,合约也可以从其他合约中继承 。
-
状态变量是在合约存贮器中永久存贮的值
//需要永久存储的是会storage 不需要的用memeory 存储到服务器合约一旦部署就无法改变,存贮到内存中是随时都可以改变的
-
函数是合约中可执行单位的代码
//建立多个函数的合集用于调用读取
-
函数修饰符可以在声明的方式中补充函数的语义
-
事件是和EVM(以太虚拟机)日志设施的方便的接口
//用event标注事件,log直接记录日志
log{address, tokenaddress, tokenid}
-
结构是一组用户定义的变量
常量,变量,和各种数据类型的统称;
- 枚举是用来创建一个特定值的集合的类型
pragma solidity ^0.8.0; contract enumTest { enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill } // 定义枚举类型 uint8(0,1,2,3) ActionChoices _choice; // 定义枚举类型的变量(取值范围:0,1,2,3) ActionChoices defaultChoice = ActionChoices.GoStraight; // 用点的方式使用枚举元素 function setGoStraight(ActionChoices choice) public { _choice = choice; // 只能设置成0,1,2,3 超出范围会报错 } function getChoice() constant public returns (ActionChoices) { return _choice; } function getDefaultChoice() constant public returns (uint) { return uint(defaultChoice); // 显示转换成整型 } function isGoLeft(ActionChoices choice) constant public returns (bool){ if (choice == ActionChoices.GoLeft){ return true;//返回布尔类型的枚举 } return false; } }
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2895次阅读
2025-04-25 18:53:11
2025年4月国产数据库大事记:4个千万级中标项目诞生!2024年达梦净利3.6亿、金仓净利8006.6万……
墨天轮编辑部
1778次阅读
2025-04-30 17:39:54
【DBA坦白局】第一期:在小城市和一线城市做DBA,是“躺”还是“卷”?
墨天轮编辑部
1517次阅读
2025-04-10 14:17:22
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
1505次阅读
2025-04-21 16:58:09
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1190次阅读
2025-04-27 16:53:22
2025 DBA 薪资观察:做 DBA 还香吗?
墨天轮编辑部
1038次阅读
2025-04-24 15:53:21
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
868次阅读
2025-04-10 15:35:48
【专家有话说第六期】数据库考证到底有用么?国产时代DBA如何构建真实竞争力
墨天轮编辑部
859次阅读
2025-05-06 17:50:06
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
842次阅读
2025-04-25 15:30:58
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
681次阅读
2025-04-30 15:24:06