solidity基础知识
1. Solidity 语言概述
-
Solidity 是一门为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
-
Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型。
-
以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
-
由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
-
存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
-
最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。
2. 开发环境
- 直接使用官方提供的
remix
(https://remix.ethereum.org/)
3. 编译和测试智能合约
下面我们简单写一个solidity
合约
pragma solidity ^0.4.24;
contract HelloWorld {
string hello = "Hello World";
function setHello(string _hello){
hello = _hello;
}
function sayHello() public view returns (string) {
return hello;
}
}