暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

solidity第四天

原创 雪狼sunny 2022-08-23
506

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论