美文网首页
solidity 学习(一)第一个合约与Remix

solidity 学习(一)第一个合约与Remix

作者: 真是个点子王 | 来源:发表于2020-04-13 12:02 被阅读0次

    第一个合约


    pragma solidity ^0.4.0;
    
    contract HelloWorld{
        string Myname = "Emission";
        
        function getName() public view returns (string)
        { 
            return Myname;
        }
        
        function changeName(string _newName) public
        {
            Myname = _newName;
        }
        
    }
    
    • pragma:版本编译指令,编译器会读取这个版本要求,如果当前编译器的版本与要求不符合,就会提示出错。例如0.4.0,“”符号表示,程序可以跟任何 次 版本号高于0.4.0的编译器兼容;
    • 权限标识符:
      • public:设定为public的函数可以被外部账户的交易、其他合约和本合约内部调用。
      • external:定义为external的函数类似于public,但不能在合约内部调用,除非在调用时指明关键字this
      • internal:internal函数只能被合约内部的函数调用,不能被外部账户的交易或者其他智能合约调用。它们还可以被派生的子合约调用
      • private:private函数与internal函数类似,但不能被当前合约的派生子合约调用
    • 关于函数行为的关键字
      • constant或者view:当函数被标注为view时,它将承诺不对任何状态进行修改。constant时view的另一种表示方法。
      • pure:表示这个函数不会在区块链存储中读取和写入任何数据。这样的函数只能处理参数,然后返回值给调用方,无法在区块链上读取或者存储任何数据。
      • payable:表示函数用于接收外部的支付。未声明未payable的函数不能接收任何以太币支付。

    Remix的使用


    编译器界面

    编译器界面
    • 对选定的.sol代码进行编译。

    部署


    • 选择需要的虚拟账户后对智能合约进行部署

    • 暂时个人的理解,但不一定对。智能合约有一点点面向对象中的类的味道,但部署后就会只有形成一个该合约对象的实例。


    • 部署后显示合约内的函数接口,可以进行相关的调用。


    • 相关交易信息

    相关文章

      网友评论

          本文标题:solidity 学习(一)第一个合约与Remix

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