Solidity教程

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Solidity 编程语言简介

Solidity语言是一种以太坊智能合约高级编程语言,运行在以太坊(Ethereum)虚拟机(EVM)之上。

Solidity语言是一种语法类似JavaScript的高级编程语言。Solidity语言被设计成以编译的方式生成以太坊虚拟机代码。使用它很容易创建开发用于投票、众筹、封闭拍卖、多重签名钱包等以太坊智能合约。

  • 注意:目前学习Solidity语言编程最好的方式是使用基于浏览器的编译器。

但作为一种真正意义上运行在互联网上的去中心化智能合约,它又有很多的不同,所以Solidity编程语言也很不同:

  • 以太坊底层是基于帐户,而非UTXO的,所以Solidity语言提供有一个特殊的Address类型。用于定位用户账号,定位智能合约,定位智能合约的代码(智能合约本身也是一个帐户)。
  • 由于Solidity语言内嵌框架是支持支付的,并且提供了一些关键字,如payable,可以在Solidity语言层面直接支持支付,用起来十分简单。
  • 数据存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以Solidity语言在开发时需要确定变量是使用内存,还是区块链。
  • Solidity运行环境是在一个去中心化的网络上,特别强调以太坊智能合约或函数执行的调用方式。因为原来一个简单的函数调用变为了一个网络上的节点代码执行,完全是分布式的编程环境。
  • Solidity语言的异常机制也很不一样,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证以太坊智能合约执行的原子性,以避免中间状态出现的数据不一致。