以太坊solidity学习记录(二)基础操作整理

这篇博客详细介绍了Solidity的基础操作,包括四种可见度/访问权限、三种修饰符、函数构成、布尔类型、逻辑运算符、常规运算符、位运算符、赋值操作、固定长度字节数组byte及其用途,以及可变长度byte数组的声明和使用。通过实例解析了各种操作的使用场景和注意事项。
摘要由CSDN通过智能技术生成

个人目录

以太坊solidity学习记录(一)新版在线remix编译器的使用(2020.4.27)
以太坊solidity学习记录(二)基础操作整理
以太坊solidity学习记录(三)基础数据操作
以太坊solidity学习记录(四)地址与交易
以太坊solidity学习记录(五)函数入门
以太坊solidity学习记录(六)内存与结构体

1.solidity的四种可见度/访问权限

public:任何人都可以调用该函数,包括DApp的使用者。
private:只有合约本身可以调用该函数(在另一个函数中)。
internal:只有这份合同以及由此产生的所有合同才能称之为合同。
external:只有外部可以调用该函数,而合约内部不能调用。

2.solidity的三种修饰符

view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它
pure: 也可以自由调用,既不读取也不写入区块链
payable:常常用于将代币发送给合约地址。

来源自solidity[1]-HelloWorld

3.一个solidity的函数应有以下部分组成

function
你的函数名字(类型1 名字,类型2 名字,。。。,类型n 名字) 如果没有就什么都不填即可
可见度/访问权限,即public/private/internal/external 如果不写则系统默认为public并且警告
修饰符,即view/pure/payable 如果需要花费gas则不写
returns(类型1 名字,类型2 名字,。。。,类型n 名字) PS.如果有的话

注意:调用函数时如果需要输入字符串,则在输入框之内需要将字符串用双引号括起来。
尝试了一下最新的网页版不加双引号也可以成功,可能是更新之后新增的功能,具体见图

pragma solidity ^0.4.0;

contract helloworld {
   
    function stringtest(string inputstr) public view returns(string){
   
        return inputstr;
    }
}

在这里插入图片描述

4.布尔类型

pragma solidity ^0.4.0;

contract helloworld {
   
    bool boola=true; //声明一个布尔类型的值,只用一个等号
    function booltesta() public view returns(bool){
   
        return boola;
    }
    
    function booltestb(int a,int b) public view returns(bool){
   
        return a==b;
    }
}

测试结果
在这里插入图片描述

5.与,或

即&&,||

pragma solidity ^0.4.0;

contract helloworld {
   
    function andtestTT() public view returns(bool){
   
        return true&&true;
    }
    function andtesTF() public view returns(bool){
   
        return true&&false;
    }
    function andtestFF() public view  returns(bool){
   
        return false&&false;
    }
    function ortestTT() public view returns(bool){
   
        return true||true;
    }
    function ortesTF() public view  returns(bool){
   
        return true||false;
    }
    function ortestFF() public view  returns(bool){
   
        return false||false;
    }
}

测试结果
在这里插入图片描述

6.通常运算符

即+,-,*,/,%以及特殊的符号**代表x的x次幂

pragma solidity ^0.4.0;

contract helloworld {
   
     function jiatest(int a,int b) public view  returns(int){
   
        return a&#
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值