记录自己曾经学习的一些区块链开发基础


//SPDX-License-Identifier:MIT
pragma solidity >=0.8.7 <0.9.0;  //表名这是一个solidity程序,
                        //>= 表示任何比0.8.7大的版本都适用,包括0.8.7
                        //<0.9.0表示比0.9.0小的版本都适用,不包括0.9.0

contract SimpleStorage{
    uint256  favorateNumber;
   // int256 shuzi = 456;
    // bool noFavoriteNumber = true;
    //string num = "123"; //string本质上就是一种bytes,但string只能存储文本
    //address myAddress = 0x17c5678b731F295e701C9A3c65bFe00AB81ca81C;
   // bytes32 favoriteBytes = "cat";//bytes变量通常是"0x"开头,然后有一些随机的数字和字母
``javascript
    struct People{
        uint256 favorateNumber;
        string name;
    }

    mapping (string => uint) public  nameToFavorateNumber;

    //People public person = People({favorateNumber:2,name:"jack"});
    People[] public people;



    function store(uint256 _favorateNumber) public {
        favorateNumber = _favorateNumber;
        favorateNumber = favorateNumber+1;
    }

    //0x652c9ACcC53e765e1d96e2455E618dAaB79bA595

    function add() public pure returns (uint256){
        return (1+1);
    }

    //memory calldata  临时变量,生命周期与函数保持一致,
    //既当addPerson这个函数结束时,_name的生命周期也结束了

    //memory是可被修改的临时变量
    //calldata是不可被修改的临时变量
    //storage是可被修改的永久变量

    //总结:当结构体、映射和数组在作为参数被添加到不同的的函数时,
    //需要给定一个memory或calldata关键字,因为solidity不知道这些变量中
    //到底是什么东西,所以会给他们开辟临时的存储空间
    function addPerson(string memory _name,uint256 _favorateNumber) public {
       // People memory newPeople = People({favorateNumber:_favorateNumber,name:_name});  //二者是一样的
        People memory newPeople = People(_favorateNumber,_name);
        people.push(newPeople);

        nameToFavorateNumber[_name] = _favorateNumber;
    }
}
、、、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值