1、HelloWorld 智能合约就像是一份合同一样,你书写的每个代码都是合同的内容。所以合约一经部署,合约内容就无法修改,好比你和别人签苹写了合同之后,是没法再修改的。这也是正是基于区块链不可篡改的特性。 在通常的编程语言中,一般会使用标准输出来打印“Hello World”,Solidity作为一门智能合约编程语言,是有别与一般的编程语言,他是基于以太坊,并且是用来编写“合约”的。所以这里不再使用“HelloWorld”作为示例,而是使用Solidity官网中的一个入门示例。
pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
以上代码就是一个使用Solidity编写的名为SimpleStorage的合约。1.1 第一行代码是用来指定Solidity的语言版本,pragma solidity是固定格式,后边加上版本号,七位数开奖结果查询版本号通过范围来确定的,即大等于0.4.0,小于0.6.0。在网上会经常看到^0.4.21这样的书写方式,这种格式是支持在0.5.2及之前的版本。比如在remix-ide环境中编写pragma solidity ^0.5.3,则会提示编译错误:browser/Untitled.sol:3:1: ParserError: Source file requires different compiler version (current compiler is 0.5.2+commit.1df8f40c.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version。
1.2 第二代码创建名为SimpleStorage的合约。contract 是关键字,SimpleStorage为合约名称。这个类似于java的类定义一样,自考本科class Person{},比较容易理解。
1.3 第三行代码定了一个无符号整数storedData,这个状态变量将会保存在区块链上,好比写入数据库进行了持久化,什么时候都可以进行读取。
1.4 定义set方法,对状态变量storedData进行赋值,其中public是关键定,修饰set方法可以被合约外部调用。
1.5 定义get方法,返回状态变量storedData的值,对于返回值的书写稍有不同,关键字是returns,而不是return,另外返回值可以是多个,使用圆括号包起来。
这就是一个简单的Solidity编写的合约了,有编程经验的人很容易理解。
2、布尔型和整型
2.1 布尔型
bool类型同其他语言一样,取值为true或false, 其运算操作有!、