day01solidity

这篇博客探讨了Solidity编程语言在智能合约中的应用,包括不同函数类型的使用,如view、pure和修改状态的操作。文章通过示例合约展示了如何创建、修改变量,并讨论了运算符和数据类型在合约中的作用。同时,还提到了动态数组和固定长度字节在智能合约中的操作方法。
摘要由CSDN通过智能技术生成

在这里插入图片描述由于remix版本的问题与图片中略有不同

//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;

contract HelloWorld{
    string Myname="yang";
    function getName() public view returns(string memory)
    {
        return Myname;
    }
    function changeName(string memory _newName) public
    {
        Myname=_newName;
    }
}

view:不管调用任何函数都不会消耗gas
deploy消耗Ether,多写代码消耗Ether更多
changeName消耗了gas,因为会修改状态消耗燃料
在这里插入图片描述

//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;

contract HelloWorld{
    string Myname="yang";
    function getName() public view returns(string memory)
    {
        return Myname;
    }
    function changeName(string memory _newName) public
    {
        Myname=_newName;
    }
    function pureTest(string memory _name) public pure returns(string memory){
        return _name;
    }
}

Deploy和changeName函数均会消耗Ether
pure:永久的,不会读取到状态变量
Boolean.sol:

//SPDX-License-Identifier: GPL-3.0
pragma solidity^0.8.0;
contract BooleanTest{
    bool _a;
    int num1=100;
    int num2=200;
    function getBool() public view returns(bool){
        return _a;
    }
    function getBool2() public view returns(bool){
        return !_a;
    }
    function panduan() public view returns(bool){
        return num1==num2;
    }
    function panduan2() public view returns(bool){
        return num1!=num2;
    } 
    function yu() public view returns(bool){
        return (num1==num2)&&true;
    }
     function yu2() public view returns(bool){
        return (num1!=num2)&&true;
    }
     function huo() public view returns(bool){
        return (num1==num2)||true;
    }
     function huo2() public view returns(bool){
        return (num1!=num2)||true;
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述Math.sol:

//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
//int可正可负,uint只能正
contract math{
    uint numa=4;
    uint numb=2;
    //uint8 numc=2;
   
    function add(uint a,uint b) public pure returns(uint){
        return a+b;
    }
     function jian(uint a,uint b) public pure returns(uint){
        return a-b;
    }
     function cheng(uint a,uint b) public pure returns(uint){
        return a*b;
    }
     function chu(uint a,uint b) public pure returns(uint){
        return a/b;
    }
     function quyu(uint a,uint b) public pure returns(uint){
        return a%b;
    }
     function pingfang(uint a,uint b) public pure returns(uint){
        return a**b;
    }
     uint8 a=3;
     uint8 b=4;
     function weiyu() public view returns(uint){
         return a&b;
     }
     function weihuo() public view returns(uint){
         return a|b;
     }
     function weifan() public view returns(uint){
         return ~a;
     }
     function weiyihuo() public view returns(uint){
         return a^b;
     }
     function zuoyi() public view returns(uint){
         return a<<1;
     }
     function youyi() public view returns(uint){
         return a>>1;
     }
     function flow() view public returns(uint){
         uint mm=255;
         mm++;
         return mm;
     }
     function flow2() public view returns(uint){
         uint8 mm=0;
         mm--;
         return mm;
     }
     function errorTest() public pure returns(int){
         int a=2;
         int b=0;
         return a/b;
     }
    // function errorTest2(){
    //      int a=2;
    //      //int b=0;
    //      //return a/b;
    //      int b=-1;
    //      a<<b;
    //  }
     function intergerTest() public pure returns(uint){
         uint num=(2**800+1)-2**800;
         return num;
     }
      function intergerTest2() public pure returns(uint){
         uint num=2/5*10000000000;
         return num;
     }
      function intergerTest3() public pure returns(uint){
         uint num=11111111111111111111111111111111111112-11111111111111111111111111111111111111;
         return num;
     }
}

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述Bytes.sol:

//SPDX-License-Identifier: GPL-3.0
pragma solidity ^ 0.8.0;
contract ByteArray{
    bytes1 public num1=0x7a;
    bytes2 public num2=0x7a68;
    bytes12 public num3=0x7a6890899078904534234567;
    bytes1 public a=0x7a;
    bytes1 public b=0x68;
    function getLength() public view returns(uint){
        return num1.length;
    }
    function getLength2() public view returns(uint){
        return num2.length;
    }
    function getLength3() public view returns(uint){
        return num3.length;
    }
//    public  function setLength(){
//        // num1.length=18;
//     }
    function bijiao() public view returns(bool){
        return a>b;
    }
     function bijiao2() public view returns(bool){
        return a>=b;
    }
     function bijiao3() public view returns(bool){
        return a<b;
    }
     function bijiao4() public view returns(bool){
        return a<=b;
    }
     function bijiao5() public view returns(bool){
        return a==b;
    }
     function bijiao6() public view returns(bool){
        return a!=b;
    }
    function weiyu() public view returns(bytes1){
        return a&b;
    }
     function weihuo() public view returns(bytes1){
        return a|b;
    }
     function weifan() public view returns(bytes1){
        return ~a;
    }
     function weiyihuo() public view returns(bytes1){
        return a^b;
    }
     function zuoyi() public view returns(bytes1){
        return a<<1;
    }
     function youyi() public view returns(bytes1){
        return a>>1;
    }
}

在这里插入图片描述
在这里插入图片描述DynamicBytes.sol:

//SPDX-License-Identifier: GPL-3.0
pragma solidity^0.8.0;
contract DynamicByte{
    bytes public name=new bytes(2);
      function  initName() public{
        name[0]=0x7a;
        name[1]=0x68;
    }
    function getLength() public view returns(uint){
        return name.length;
    }
    function changeName() public{
        name[0]=0x88;
    } 
    function changeLength() public{
       name.length=5;
    } 
    function pushTest() public {
        name.push(0x99);
    } 
    function popTest() public {
        name.pop();
    } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为前端工程师滴小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值