美文网首页
Solidity(二)

Solidity(二)

作者: a437e8f87a81 | 来源:发表于2022-02-18 14:47 被阅读0次

    Visibility 

    public  private  external internal 

    以上四种修饰 function 

    若要使用state variables 则无法使用external

    public 

    将会成为ABI的一部分 用于state variables 则会自动产生getter function

    private 

    在contract 中无法被访问修改 但是在block chain world state还是可见的

    external 

    放入ABI 中 可以被外部呼叫  无法被内部直接呼叫 f() 失败  this.f() 成功,处理大队列时候效率较高 不会做memory copy 操作

    internal 只能被自己的合约或者衍生出的合约做呼叫

    State  Mutability

    pure  view default

    pure:不读写

    view:读不写

    default:可读可写

    constructor

    contract 被立即执行的function 

    我们会在这里设定资料的初始值

    不宣告的时候solidity 会帮我们自动生成一个 constructor() {...}

    一般创建合约最初的时候被执行

    demo

    contract PiggyBank {

        uint public goal;

        constructor(uint _goal) {

            goal = _goal;

        }

        receive() external payable {};

        function getMybanance() public view returns(uint) {

            return address(this).balances;

        }

        function withdraw() public {

            if(getMybanance() > goal) {

                selfdestruct(msg.sender);

            }

        }

    }

    Value Types

    Value Types :总是以value的形式传递 (pass by value)

    Reference Types:Array,Structs,Mappings

    Mapping Types:{key,value}  Hash table

    相关文章

      网友评论

          本文标题:Solidity(二)

          本文链接:https://www.haomeiwen.com/subject/wdlslrtx.html