Solidity语言编写HelloWorld合约教程

// 在线remix编辑器: https://remix.ethereum.org 提供编辑、编译、运行合约环境
// 第一行指定solidity版本号,尖角号代表只兼容0.4.0以后的版本,避免比0.4.0更老的编译器编译
// 但是不能被0.5.0及以上的编译器编译
pragma solidity ^0.4.0; // 严格加分号,代表一个语句的分割 

// 创建合约对象
contract HelloWorld {
    // 描述一个对象需要属性和行为
    // 添加属性或者状态,以太坊中喜欢用状态标识各种各种的东西
    string myName = "xxx"; // 其他语言的string类型存在内存,这里存在区块链上

    // 定义get方法获取名字, public代表可访问性,所有人可以访问; 
    // view指定这个方法不会修改, 是为了解决燃料而设计的
    function getName() public view returns(string) { // returns是个关键字
        return myName;
    }

    // 定义change方法改变名字,没有返回值不需要returns关键词
    function changeName(string _newName) public {
        myName = _newName;
    } 
}

// 编译成功之后,只是变成了一个可执行文件,可以部署到vm虚拟机上被识别执行,勾选auto后代码修改可自动编译
// 运行时,先选择JavaScript VM, 其他选默认,点击部署即可完成合约的部署
// 现在相当于将合约部署到了虚拟的以太坊区块链之上
// 如果想调用合约进行交互,点击面板生成的getName按钮,即可打印出0:string:xxx,0表示第一个值的序号
// 部署需要花费一定燃料,可以看到燃料减少了,因为view的限定,持续点击getName按钮并不消耗燃料
// 代码增多,部署时消耗gas会变多
// 添加changeName方法后重新编译部署后,填写修改值并点击面板changeName,会发现gas会一直减少
// 修改状态,所有节点都会同步,所以会消耗一定的燃料
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ICPunk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值