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

solidity第二天

原创 雪狼sunny 2022-08-21
254

关于对基础的helloword的代码实例

// SPDX-License-Identifier: MIT    //合约的协议
// compiler version must be greater than or equal to 0.8.10 and less than 0.9.0
pragma solidity ^0.8.10; //指定你使用的版本

contract HelloWorld {
    string public greet = "Hello World!";
}
//自顶一个一个HelloWorld的合约函数,获取合约的值为helloword

solidity 数值和类型

布尔(Booleans)
整型(Integer)
地址(Address)
定长字节数组(fixed byte arrays)
有理数和整型(Rational and Integer Literals,String literals)
枚举类型(Enums)
函数(Function Types)

pragma solidity ^0.4.25;
contract ValueType{
    function testValueType() public view returns(uint){
        uint luckNum = 101;
        uint loveNum = luckNum;
        changeValue(luckNum);
        return luckNum;
    }
    
    function changeValue(uint _num) private{
        _num += 100;
    }
}
  • 字符串(string)
  • 不定长字节数组(bytes)
  • 数组(Array)
  • 结构体(Structs)
  • int(有符号整型,有正有负)

  • uint(无符号整型,无负数)

  • 以8位为区间,支持int8,int16,int24 至 int256,uint同理。

    int默认为int256,uint默认为uint256

  • solidity内置了一些数组的数据类型:(和go语言做一下对比, var [8] byte),完全只读

    bytes1, … ,bytes32,允许值以步长1递增。
    byte默认表示bytes1,byte是类型,bytes是类型,bytes1是内置数组
    bytes1只能存储1个字节,即8位的内容,bytes2最多只能存储2个字节,即16位的内容。以此类推…
    长度可以读取 length
    长度不可以修改
    可以通过下标访问
    内容不可修改
    内置方法:length() -> 返回数组长度

    存储方式:16进制ascii码

    修饰符 说明
    public 公有,任何人(拥有以太坊账户的)都可以调用
    private 私有, 只有智能合约内部可以调用
    external 仅合约外部可以调用,合约内部需使用this调用
    internal 仅合约内部和继承的合约可以调用
    view/constant 函数会读取但是不会修改任何contract的状态变量
    pure 函数不使用任何智能合约的状态变量
    payable 调用函数需要付钱,钱付给了智能合约的账户
    returns 返回值函数声明中使用

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论